Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Bug no uso do assistente da openai

Olá! Estou desenvolvendo um chatbot em python com flask. Queria que o assistente interagissse com o usuário e não o chat. Então tinha feito o código conforme abaixo e estava funcionando até ontem. Porém, hoje, depois de submeter o input na aplicação flask hoje, o bot me retornou:

Completions.create() got an unexpected keyword argument 'assistant_id';

Segue a parte do código com o problema.

`app.route("/chat", methods=["POST"]) def chat(): data = request.json user_message = data.get("msg")

try:
    response = openai.chat.completions.create(
        model="gpt-4-turbo",
        messages=[
            {"role": "system", "content": "Você é a assistente Eva."},
            {"role": "user", "content": user_message}
        ],
        max_tokens=4096,
        temperature=0.87,
        n=1,
        stop=None,
        user="user-id",  
        assistant_id=ASSISTENTE_ID
    )

    return response['choices'][0]['message']['content']

except Exception as e:
    return str(e), 500`

Tentei retirar as linhas referentes ao assistente para ver se rodava, mas vem este erro depois de submeter o input na aplicação flask: 'ChatCompletion' object is not subscriptable'

Já tentei reinstalar as dependências e não funcionou. Ontem funcionou e eu não mudei nada.

1 resposta
solução!

Olá Daniel! Tudo bem?

Parece que o problema está relacionado ao uso do parâmetro assistant_id na função openai.chat.completions.create(). Esse parâmetro não é reconhecido pela API da OpenAI, o que está causando o erro.

Além disso, o erro 'ChatCompletion' object is not subscriptable' indica que você está tentando acessar um objeto como se fosse um dicionário, mas ele não é subscriptable.

Aqui está uma versão corrigida do seu código:

from flask import Flask, request
import openai

app = Flask(__name__)

@app.route("/chat", methods=["POST"])
def chat():
    data = request.json
    user_message = data.get("msg")

    try:
        response = openai.ChatCompletion.create(
            model="gpt-4-turbo",
            messages=[
                {"role": "system", "content": "Você é a assistente Eva."},
                {"role": "user", "content": user_message}
            ],
            max_tokens=4096,
            temperature=0.87,
            n=1,
            stop=None,
            user="user-id"
        )

        return response.choices[0].message['content']

    except Exception as e:
        return str(e), 500

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

Algumas mudanças principais:

  1. Removi o parâmetro assistant_id, pois ele não é suportado.
  2. Corrigi o acesso ao conteúdo da resposta. A resposta da API precisa ser acessada como um objeto, não como um dicionário.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.