Spaces:
Runtime error
Runtime error
| import openai | |
| import os | |
| from calling_functions import ( | |
| ADD_DECIMAL_AND_HEXADECIMAL_FUNCTION_SCHEMA, | |
| add_decimal_values, # noqa | |
| add_hexadecimal_values, # noqa | |
| ) | |
| # Definición de las funciones de Chat | |
| def get_initial_message(): | |
| messages = [ | |
| { | |
| "role": "system", | |
| "content": "Hola, soy ProPilot. Si deseas probar el function calling que tengo configurado solo pregunta: Cual es la suma de 24 y el valor hexadecimal F?", | |
| }, | |
| ] | |
| return messages | |
| def get_chatgpt_response(messages, model): | |
| openai.api_base = "https://oai.hconeai.com/v1" | |
| HELICONE_API_KEY = os.getenv("HELICONE_API_KEY") | |
| intermediate_results = [] | |
| while True: | |
| response = openai.ChatCompletion.create( | |
| model=model, | |
| messages=messages, | |
| functions=ADD_DECIMAL_AND_HEXADECIMAL_FUNCTION_SCHEMA, | |
| temperature=0, | |
| headers={ | |
| "Helicone-Auth": f"Bearer {HELICONE_API_KEY}", | |
| "Helicone-Cache-Enabled": "true", | |
| "Helicone-Property-App": "HuggingFaceProPilot", | |
| "Helicone-Property-DataSource": "FunctionsCallingDemo", | |
| } | |
| ) | |
| if response.choices[0]["finish_reason"] == "stop": | |
| final_answer = response.choices[0]["message"]["content"] | |
| return final_answer | |
| elif response.choices[0]["finish_reason"] == "function_call": | |
| fn_name = response.choices[0]["message"]["function_call"]["name"] | |
| arguments = response.choices[0]["message"]["function_call"]["arguments"] | |
| function = globals()[fn_name] | |
| result = function(arguments) | |
| if isinstance(result, dict) and "result" in result: | |
| result = result["result"] | |
| intermediate_results.append(str(result)) | |
| # Remove intermediate results from the messages | |
| messages = messages[:-len(intermediate_results)] | |
| # Append the final answer as a system message | |
| messages.append( | |
| { | |
| "role": "system", | |
| "content": intermediate_results[-1] | |
| } | |
| ) | |
| def update_chat(messages, role, content): | |
| messages.append( | |
| {"role": role, "content": content}, | |
| ) | |
| return messages | |