Skip to content

Commit

Permalink
Patch: Remove duplicate code
Browse files Browse the repository at this point in the history
  • Loading branch information
chyroc committed Jan 3, 2024
1 parent baeac23 commit c121a49
Showing 1 changed file with 9 additions and 41 deletions.
50 changes: 9 additions & 41 deletions libs/community/langchain_community/tools/render.py
Original file line number Diff line number Diff line change
@@ -1,44 +1,12 @@
"""Different methods for rendering Tools to be passed to LLMs.
Depending on the LLM you are using and the prompting strategy you are using,
you may want Tools to be rendered in a different way.
This module contains various ways to render tools.
"""
from langchain_core.tools import BaseTool

from langchain_community.utils.openai_functions import (
FunctionDescription,
ToolDescription,
convert_pydantic_to_openai_function,
from langchain_community.tools.convert_to_openai import (
format_tool_to_openai_function,
format_tool_to_openai_tool,
)


def format_tool_to_openai_function(tool: BaseTool) -> FunctionDescription:
"""Format tool into the OpenAI function API."""
if tool.args_schema:
return convert_pydantic_to_openai_function(
tool.args_schema, name=tool.name, description=tool.description
)
else:
return {
"name": tool.name,
"description": tool.description,
"parameters": {
# This is a hack to get around the fact that some tools
# do not expose an args_schema, and expect an argument
# which is a string.
# And Open AI does not support an array type for the
# parameters.
"properties": {
"__arg1": {"title": "__arg1", "type": "string"},
},
"required": ["__arg1"],
"type": "object",
},
}


def format_tool_to_openai_tool(tool: BaseTool) -> ToolDescription:
"""Format tool into the OpenAI function API."""
function = format_tool_to_openai_function(tool)
return {"type": "function", "function": function}
# backward compatibility
def __getattr__(name):
if name == "format_tool_to_openai_function":
return format_tool_to_openai_function
if name == "format_tool_to_openai_tool":
return format_tool_to_openai_tool

0 comments on commit c121a49

Please sign in to comment.