Inteligência Artificial de aprendizado contínuo com tecnologia OpenAI
Servidor VPS
Sistema operacional AlmaLinux 8 64bit
Objetivo:
Criar um inteligência artificial com a tecnologia OpenAI Davinci 003 em um ambiente isolado usando miniconda.
A IA terá o nome de Pandora e seu objetivo é criar um chat muito parecido com o GPT tradicional utilizando flask.
A Pandora deve ser acessada diretamente pelo site “xxxx.com”
Já existe um apontamento DNS tipo A com nome xxxx.com apontando para o nosso servidor.
Todos os recursos não exclusivos para IA devem ser instalados de formar global, todos os recursos pertecentes a IA devem ser instalado dentro de um ambiente virtual usando o conda chamado Pandora.
O ponto de partida é uma instalação nova do AlmaLinux 8 64 bits com cyber panel, ou seja, tudo o que o projeto precisará deverá ser instalado e atualizado. Apos a instalação de qualquer recurso o mesmo deverá ser atualizado.
Abaixo um passo a passo que esta sendo criado e documentado para registros didáticos e consulta.
Essa fase consiste em instalar e atualizar o sistema operacional, o miniconda, o git, o curl, o wget e o nano no seu servidor.
1.1. Atualizar o sistema operacional usando o comando
sudo dnf update -y
1.2. Instalar o curl e o wget usando o comando
sudo dnf install curl wget -y
1.3. Instalar o Python usando o comando
sudo dnf install python3 -y
1.4. Verificar a versão do Python instalada usando o comando
python3 --version
1.5. Instalar o mini conda usando o comando
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
1.6. Executar o instalador do mini conda usando o comando
bash Miniconda3-latest-Linux-x86_64.sh
1.7. Verificar se o mini conda foi instalado corretamente usando o comando
source ~/.bashrc
conda --version
1.8. Checar atualizações do conda
conda update --all -y
1.9. Quando precisar desativar o ambiente
conda deactivate
Essa fase consiste em criar um ambiente virtual chamado pandora com o miniconda, ativar o ambiente, instalar o Python 3.9 e os pacotes necessários para o GPT-4, como o openai, o rpy2, o transformers, etc.
2.0. Quando precisar fechar um ambiente conda:
conda deactivate
2.1. Criar um ambiente virtual chamado pandora com o miniconda:
conda create -n pandora python=3.9
2.2. Ativar o ambiente virtual:
conda activate pandora
2.3 Instalar e atualizar o pacote openai no ambiente virtual:
pip install openai==0.28
2.4. Instalar o pacote rpy2 no ambiente virtual:
conda install rpy2
2.5. Instalar o pacote transformers no ambiente virtual:
pip install transformers
Essa fase consiste em obter acesso à API do Davinci 003 da OpenAI, configurar a sua chave de API e o endpoint do Azure OpenAI Service, inicializar o seu modelo, carregar os pesos do modelo pré-treinado, preparar a configuração do treinamento, ajustar o seu modelo personalizado com o seu conjunto de dados de conversação, iterar e otimizar o seu modelo com a ferramenta GPT Builder da OpenAI.
3.1 Criar arquivo .openai
nano .openai
3.2 Cole sua chave da seguinte forma salve feche o editor
sk-...
3.3. Abrir o Arquivo .bashrc para Edição:
nano ~/.bashrc
3.5. Adicionar a Variável de Ambiente no final do arquivo, salvar e sair
export OPENAI_API_KEY='sk-...'
3.6 Recarregar o Arquivo .bashrc:
source ~/.bashrc
3.7. Verificar se a Variável de Ambiente está Definida:
echo $OPENAI_API_KEY
3.8. Criar arquivo pandora-v1-config.py usando o nano
nano pandora_v1_config.py
3.9 Copiar o codigo com a sua chave API para o arquivo, apertar ctrl + o para salvar depois ctrl + x para sair
import openai
# Carregar a chave de API do arquivo .openai no mesmo diretório
with open('.openai', 'r') as file:
openai.api_key = file.read().strip()
# Exemplo de solicitação padrão (Não-Streaming) usando o endpoint de completions
print("----- standard request -----")
completion = openai.Completion.create(
model="text-davinci-003", # Substituído pelo modelo Davinci 003
prompt="Quantos planetas existem no sistema solar?",
max_tokens=150
)
print(completion.choices[0].text)
# Exemplo de solicitação de Streaming (Opcional)
# Note que o streaming pode não estar disponível para todos os modelos e endpoints
# print("----- streaming request -----")
# stream = openai.Completion.create(
# model="text-davinci-003",
# prompt="Como posso utilizar o modelo GPT-3 para melhorar meu serviço de atendimento ao cliente?",
# max_tokens=150,
# stream=True,
# )
# for chunk in stream:
# if not chunk.choices:
# continue
# print(chunk.choices[0].delta.content, end="")
# print()
3.10. Executar seu comando
python pandora_v1_config.py
Essa fase consiste em acessar o painel de controle do CyberPanel pelo seu navegador, usando o endereço IP do seu servidor e a porta 8090, por exemplo, http://123.456.789.0:8090
. Você precisará fornecer o usuário e a senha que você criou durante a instalação do CyberPanel. Depois, você deverá criar um novo site no CyberPanel usando o domínio pandora.agenciapropagare.com e exclua o arquivo index.html em /home/pandora.agenciapropagare.com/public_html/
4.1. Atualize o seu pip e setuptools usando os seguintes comandos:
sudo python3 -m pip install --upgrade pip
sudo python3 -m pip install --upgrade setuptools
4.2. Instale o módulo ez_setup, que pode ajudar a configurar o seu pacote, usando o seguinte comando:
pip3 install ez_setup
4.3. Instale as depedencias necessarias para instalar o python globalmente
sudo yum -y groupinstall “Development Tools”
sudo yum -y install gcc openssl-devel bzip2-devel libffi-devel
4.4. Baixe o tarball do site oficial do Python, usando o seguinte comando:
wget https://www.python.org/ftp/python/3.9.9/Python-3.9.9.tar.xz
4.5. Extraia e instale o tarball, usando os seguintes comandos:
tar -xf Python-3.9.9.tar.xz
cd Python-3.9.9
./configure
sudo make install
4.6. Verifique se o Python foi instalado corretamente, usando o seguinte comando:
python3 --version
4.7. Instalar o Flask e todos os seus recursos no na pasta da sua interface:
pip install Flask
4.8. Instalar depedencias necessarias
Flask
: O framework web principal.Flask-Login
: Para gerenciar sessões de usuário.Flask-SQLAlchemy
: Uma extensão para Flask que adiciona suporte para SQLAlchemy, útil para trabalhar com bancos de dados.Flask-Migrate
: Para lidar com migrações de banco de dados SQLAlchemy.Flask-Mail
: Para enviar e-mails.Flask-WTF
: Para trabalhar com formulários web, incluindo proteção contra CSRF.python-dotenv
: Para carregar variáveis de ambiente do arquivo .env
, que é útil para configurações.
pip install Flask Flask-Login Flask-SQLAlchemy Flask-Migrate Flask-Mail Flask-WTF python-dotenv Flask-Bcrypt pymysql
4.9. Adicione a porta 8085 e 5000 no firewall no painel do cyber panel.
sudo systemctl status firewalld
sudo firewall-cmd --permanent --add-port=8085/tcp
sudo firewall-cmd --reload
sudo firewall-cmd --list-all
4.14. Crie as pastas e arquivos seguindo essa estrutura
/pandora
│
├── /app
│ ├── /models
│ │ ├── __init__.py
│ │ ├── User.py
│ │ └── Company.py
│ ├── __init__.py
│ └──
│ └── /routes
│ ├── __init__.py
│ ├── auth.py
│ └── main.py
│
├── /templates
│ ├── login.html
│ └── register.html
│
├── /static
│ ├── /css
│ │ ├── login.css
│ │ └── register.css
│ │
│ ├── /js
│ │ ├── login.js
│ │ └── register.js
│ │
│ └── /images
│ └── [imagens aqui]
├── app.py
└── config.py