Integração do ChatGPT em uma API Python

Este artigo oferece um guia prático para integrar o ChatGPT, um modelo de linguagem avançado da OpenAI, em uma API Flask usando Python 3.7.8. Aprenda a configurar a API Key da OpenAI, criar um endpoint e desenvolver um servidor Flask que processa mensagens do cliente e retorna respostas geradas pelo modelo ChatGPT, ideal para criar chatbots, assistentes virtuais e outras aplicações de geração de texto.

[ Hits: 2.981 ]

Por: Diego em 28/03/2023 | Blog: https://rotadev.blogspot.com/


Introdução



Para integrar o ChatGPT em uma API Flask com Python 3.7.8, você pode seguir os seguintes passos:

1. Instale o pacote openai usando o comando:

pip install openai

2. Crie um arquivo "app.py" e importe as bibliotecas necessárias:

from flask import Flask, request, jsonify
import openai

3. Configure a API Key da OpenAI com a variável de ambiente OPENAI_API_KEY. Você pode criar uma conta na OpenAI e obter sua chave API em: https://beta.openai.com/account/api-keys

4. Crie um endpoint em sua API Flask para receber as solicitações do cliente e gerar as respostas com o ChatGPT. O código a seguir é um exemplo básico de como você pode criar um endpoint que recebe uma mensagem do cliente, chama o modelo ChatGPT da OpenAI para gerar uma resposta e retorna a resposta ao cliente:

app = Flask(__name__)

@app.route('/api/chat', methods=['POST'])
def chat():
    data = request.json
    prompt = data['prompt']
    response = openai.Completion.create(
        engine="text-davinci-002",
        prompt=prompt,
        max_tokens=1024,
        n=1,
        stop=None,
        temperature=0.7,
    )
    message = response.choices[0].text.strip()
    return jsonify({'message': message})

if __name__ == '__main__':
    app.run(debug=True)

Nesse exemplo, o endpoint /api/chat recebe uma solicitação POST com um corpo JSON contendo uma chave prompt com a mensagem do cliente. Em seguida, o modelo ChatGPT é chamado com a mensagem do cliente como entrada. A resposta gerada pelo modelo é retornada ao cliente como um JSON contendo a chave message.

Observe que o exemplo acima usa o modelo text-davinci-002 da OpenAI. Você pode escolher outros modelos da OpenAI, dependendo da sua necessidade.

O modelo text-davinci-002 é um dos modelos de linguagem mais avançados e poderosos disponíveis na plataforma da OpenAI. Ele é treinado em uma ampla variedade de tarefas de processamento de linguagem natural, incluindo geração de texto, tradução automática, resposta a perguntas, entre outras.

O modelo text-davinci-002 é baseado na arquitetura GPT-3 (Generative Pretrained Transformer 3), que é um dos modelos mais avançados de linguagem natural disponíveis atualmente. Ele contém aproximadamente 175 bilhões de parâmetros e é capaz de gerar texto altamente coerente e convincente.

O modelo text-davinci-002 é particularmente adequado para aplicações que exigem geração de texto em larga escala, como assistentes virtuais, chatbots, resumos automáticos de texto, entre outros. No entanto, tenha em mente que o modelo text-davinci-002 é um modelo pago e seu uso está sujeito a restrições da OpenAI. É importante verificar os termos e condições de uso antes de usar este modelo em sua aplicação.

5. Inicie o servidor Flask executando o comando python app.py no terminal. O servidor estará ouvindo em:

http://localhost:5000/

Com esses passos, você integrou o ChatGPT em sua API Flask. Agora você pode enviar uma solicitação POST para o endpoint /api/chat com uma mensagem do cliente e receber a resposta gerada pelo modelo ChatGPT.

Código completo

Segue abaixo um exemplo completo de como integrar o ChatGPT em uma API Flask com Python 3.7.8:

from flask import Flask, request, jsonify
import openai

app = Flask(__name__)

# Configura a API Key da OpenAI
openai.api_key = "sua_chave_api_da_openai"

# Endpoint para receber as solicitações do cliente e gerar as respostas com o ChatGPT
@app.route('/api/chat', methods=['POST'])
def chat():
    # Obtém a mensagem do cliente do corpo da solicitação
    data = request.json
    prompt = data['prompt']

    # Chama o modelo ChatGPT da OpenAI para gerar uma resposta
    response = openai.Completion.create(
        engine="text-davinci-002",
        prompt=prompt,
        max_tokens=1024,
        n=1,
        stop=None,
        temperature=0.7,
    )

    # Obtém a resposta gerada pelo modelo e retorna ao cliente
    message = response.choices[0].text.strip()
    return jsonify({'message': message})

if __name__ == '__main__':
    app.run(debug=True)



   

Páginas do artigo
   1. Introdução
Outros artigos deste autor

Krita - Um software de pintura digital Gratuito e de Código Aberto

Podcast Generator - Guia de instalação e primeiro acesso

Criando Speed Test com Python

Criando um leitor de RSS com Python

Penpot, uma alternativa ao Figma

Leitura recomendada

Criando um leitor de RSS com Python

Como baixar fotos e vídeos do Instagram com Python

Esteganografia e Esteganálise: transmissão e detecção de informações ocultas em imagens digitais

Arduino com Bluetooth e pySerial

Gerar Códigos QRCode com Python

  
Comentários
[1] Comentário enviado por fabio em 28/03/2023 - 16:59h

Muito bom! Vou deixar algumas considerações:

1. A versão atual do text-davinci é a 003.

2. text-davinci é uma engine de "text completion", que é diferente do chatGPT que é uma engine de "chat completion". Da forma como seu código está implementado, ele irá tentar completar o texto informado, o que pode gerar um comportamento não adequado. O chat completion é melhor para esse tipo de aplicação.

3. Um código para usar o chatGPT ao invés do text-davinci seria:

response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": prompt}
]
)
message = response.choices[0].message.content.strip()

E se tiver uma assinatura do GPT Plus, pode trocar a engine para 'gpt-4'. A resposta é mais lenta, mas tá um luxo!

[2] Comentário enviado por usrlinux em 28/03/2023 - 17:57h


[1] Comentário enviado por fabio em 28/03/2023 - 16:59h

Muito bom! Vou deixar algumas considerações:

1. A versão atual do text-davinci é a 003.

2. text-davinci é uma engine de "text completion", que é diferente do chatGPT que é uma engine de "chat completion". Da forma como seu código está implementado, ele irá tentar completar o texto informado, o que pode gerar um comportamento não adequado. O chat completion é melhor para esse tipo de aplicação.

3. Um código para usar o chatGPT ao invés do text-davinci seria:

response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": prompt}
]
)
message = response.choices[0].message.content.strip()

E se tiver uma assinatura do GPT Plus, pode trocar a engine para 'gpt-4'. A resposta é mais lenta, mas tá um luxo!



tmj

[3] Comentário enviado por maurixnovatrento em 14/05/2023 - 22:00h


muito bom. Ótimo artigo.

___________________________________________________________
Conhecimento não se Leva para o Túmulo.
https://github.com/mxnt10


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts