pessoal não sei se é um tema de conexão porém quando faço qualquer pergunta referente ao codigo promocional ica num loop infinito o run e não da uma resposta.... ai fica travado a thread e não consigo dar sequencia alguem conseguiria me ajudar?,
pessoal não sei se é um tema de conexão porém quando faço qualquer pergunta referente ao codigo promocional ica num loop infinito o run e não da uma resposta.... ai fica travado a thread e não consigo dar sequencia alguem conseguiria me ajudar?,
Olá Cristhyan,
Pelo que entendi, você está tendo problemas com um loop infinito ao fazer perguntas sobre o código promocional no seu chatbot criado com Python e GPT. Isso pode ser causado por várias razões, incluindo um problema de conexão, como você mencionou, ou pode ser um problema no código.
Sem ver o código, é difícil dizer exatamente o que pode estar causando o problema. No entanto, aqui estão algumas sugestões gerais que podem ajudar:
Espero que isso ajude! Se você puder fornecer mais detalhes sobre o seu código ou o problema que está enfrentando, eu ficaria feliz em tentar ajudar mais.
opa obrigado
compartilho partes do meu codigo, o principal executor ali é o app com a def bot
def bot(self,prompt):
maximo_tentativas = 1
repeticao = 0
while True:
try:
#cria o copilador da mensagem do usuário
personalidade = self.seleciona_persona(prompt)
self.cliente.beta.threads.messages.create(
thread_id=self.threads_id,
role="user",
content=f"""Assuma, de agora em diante, a personalidade abaixo
ignore as personalidades anteriores, lembre-se que seu nome é Lumybot
# Persona
{personalidade}
caso seja none a persona assuma uma personalidade neutra
""",
file_ids=self.file_ids
)
self.cliente.beta.threads.messages.create(
thread_id= self.threads_id,
role = "user",
content= prompt,
file_ids=self.file_ids
)
#cria campo de execução acionando o assistente
run = self.cliente.beta.threads.runs.create(
thread_id=self.threads_id,
assistant_id=self.assistente_id
)
# linha de repetição para garantir que a execução foi completa e conseguir responder a pergunta
while run.status != self.STATUS_COMPLETED:
run = self.cliente.beta.threads.runs.retrieve(
thread_id=self.threads_id,
run_id= run.id
)
#Status da execuçao do Run
print(f'Status: {run.status}')
#devio responsavel por absorver um comportamento novo ou não se existir a chamada de função
if run.status == self.STATUS_REQUIRES_ACTION:
tools_acionadas = run.required_action.submit_tool_outputs.tool_calls
respostas_tools_acionadas = []
for um_tool in tools_acionadas:
nome_funcao = um_tool.function.name
funcao_escolhida = self.lista_funcoes[nome_funcao]
args = json.loads(um_tool.function.arguments)
print(args)
resposta_funcao=funcao_escolhida(args)
respostas_tools_acionadas.append({
"tool_call_id":um_tool.id,
"output":resposta_funcao
})
# Envia a saída das ferramentas de execução de volta
run = self.cliente.beta.threads.runs.submit_tool_outputs(
thread_id=self.threads_id,
run_id=run.id,
tool_outputs=respostas_tools_acionadas
)
#acessa todas as respostas dentro do histórico para analise e trataiva para melhor resposta ao usuario
#necessário converter para modelo de lista se não não é possivel acessar a resposta atual
historico = list(self.cliente.beta.threads.messages.list(thread_id=self.threads_id).data)
resposta = historico[0]
#envia resposta para o usuário
return resposta
Olá! Fico feliz que você esteja gostando do curso e aprendendo coisas novas. É sempre bom descobrir que as habilidades que já temos têm um nome e são reconhecidas. Continue com o ótimo trabalho e continue aprendendo! Se tiver mais perguntas ou precisar de ajuda com algo, estou aqui para ajudar.
Lembre-se de deixar seu tópico como resolvido ou concluído para obter alcance!