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.938 ]

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

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

Criando um leitor de RSS com Python

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

Criando Speed Test com Python

Penpot, uma alternativa ao Figma

Leitura recomendada

Pydev - Preparando o Eclipse para o Python

Python - Enviando Backup para Servidor Secundário

Varredura de PING Utilizando o Python

Interagindo com servidores HTTP com Python

Sockets em 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