VapeChatbot / ChatResponse.py
JSAV's picture
Update ChatResponse.py
eecf29d
raw
history blame
No virus
1.52 kB
import openai
import os
openai.api_key = os.environ["OPENAI_API_KEY"]
# ChatGPT completion
llm_name = "gpt-3.5-turbo"
# Función para tomar pedido del usuario
tools = [{
"type": "function",
"function":{
"name": "enviar_pedido",
"description": "construye y envía el pedido hecho en la conversación, si éste ha finalizado y el usuario no desea llevar más artículos",
"parameters": {
"type": "object",
"properties": {"final": {"type": "string",
"enum": ["S"],
"description":"determina si el pedido del usuario ha terminado"}},
"required": ["final"]
}
}
}]
def get_completion_from_messages(messages, model=llm_name, temperature=0):
response = openai.chat.completions.create(
model=model,
messages=messages,
temperature=temperature, # this is the degree of randomness of the model's output
tools=tools,
tool_choice="auto"
)
return response.choices[0]
def template(context):
text=f"""Responde a la entrada previa del usuario, usando el siguiente \
contexto delimitado con ###, si este contexto es útil para responder \
al usuario, si no, entonces omítelo:
###{context}###
Si hay información solicitada por el usuario que no está en el contexto, \
dices que no la conoces, pero no inventas. Si el usuario está dando sus datos, \
omite el contexto. El hilo de la conversación es la prioridad.
"""
return text