Spaces:
Runtime error
Runtime error
from typing import Any, Dict, List, Optional | |
from langchain_core.prompts import SystemMessagePromptTemplate | |
import json | |
DEFAULT_SYSTEM_TEMPLATE = """You have access to the following tools: | |
{tools} | |
If using tools , You must respond with a JSON object in a JSON codeblock inside think matching the following schema. | |
```json | |
[ | |
{{ | |
"tool": <name of the selected tool>, | |
"tool_input": <parameters for the selected tool, matching the tool's JSON schema> | |
}} | |
] | |
``` | |
""" # noqa: E501 | |
DEFAULT_RESPONSE_FUNCTION = { | |
"name": "__conversational_response", | |
"description": ( | |
"Respond conversationally if no other tools should be called for a given query." | |
), | |
"parameters": { | |
"type": "object", | |
"properties": { | |
"response": { | |
"type": "string", | |
"description": "Conversational response to the user.", | |
}, | |
}, | |
"required": ["response"], | |
}, | |
} | |
def _function(**kwargs: Any,): | |
functions = kwargs.get("functions", []) | |
tools=kwargs.get("tools", []) | |
if "type" not in tools and "function" not in tools: | |
functions=tools | |
functions = [ | |
fn for fn in functions | |
] | |
if not functions: | |
raise ValueError( | |
'If "function_call" is specified, you must also pass a matching \ | |
function in "functions".' | |
) | |
elif "tools" in kwargs: | |
functions = [ | |
fn["function"] for fn in tools | |
] | |
# del kwargs["function_call"] | |
# elif "" | |
# elif not functions: | |
# functions.append(DEFAULT_RESPONSE_FUNCTION) | |
system_message_prompt_template = SystemMessagePromptTemplate.from_template( | |
DEFAULT_SYSTEM_TEMPLATE | |
) | |
system_message = system_message_prompt_template.format( | |
tools=json.dumps(functions, indent=2) | |
) | |
if "functions" in kwargs: | |
del kwargs["functions"] | |
return system_message.content |