mirror of
https://github.com/hwchase17/langchain.git
synced 2025-09-14 14:05:37 +00:00
Templates (#12294)
Co-authored-by: Harrison Chase <hw.chase.17@gmail.com> Co-authored-by: Lance Martin <lance@langchain.dev> Co-authored-by: Jacob Lee <jacoblee93@gmail.com>
This commit is contained in:
@@ -1,3 +1,3 @@
|
||||
DEFAULT_GIT_REPO = "https://github.com/langchain-ai/langchain.git"
|
||||
DEFAULT_GIT_SUBDIRECTORY = "templates"
|
||||
DEFAULT_GIT_REF = "langserve-templates"
|
||||
DEFAULT_GIT_REF = "master"
|
||||
|
@@ -21,9 +21,6 @@ from langchain.agents.agent_toolkits.azure_cognitive_services import (
|
||||
from langchain.agents.agent_toolkits.conversational_retrieval.openai_functions import (
|
||||
create_conversational_retrieval_agent,
|
||||
)
|
||||
from langchain.agents.agent_toolkits.conversational_retrieval.tool import (
|
||||
create_retriever_tool,
|
||||
)
|
||||
from langchain.agents.agent_toolkits.csv.base import create_csv_agent
|
||||
from langchain.agents.agent_toolkits.file_management.toolkit import (
|
||||
FileManagementToolkit,
|
||||
@@ -59,6 +56,7 @@ from langchain.agents.agent_toolkits.vectorstore.toolkit import (
|
||||
)
|
||||
from langchain.agents.agent_toolkits.xorbits.base import create_xorbits_agent
|
||||
from langchain.agents.agent_toolkits.zapier.toolkit import ZapierToolkit
|
||||
from langchain.tools.retriever import create_retriever_tool
|
||||
|
||||
__all__ = [
|
||||
"AINetworkToolkit",
|
||||
@@ -87,7 +85,6 @@ __all__ = [
|
||||
"create_pbi_agent",
|
||||
"create_pbi_chat_agent",
|
||||
"create_python_agent",
|
||||
"create_retriever_tool",
|
||||
"create_spark_dataframe_agent",
|
||||
"create_spark_sql_agent",
|
||||
"create_sql_agent",
|
||||
@@ -95,4 +92,5 @@ __all__ = [
|
||||
"create_vectorstore_router_agent",
|
||||
"create_xorbits_agent",
|
||||
"create_conversational_retrieval_agent",
|
||||
"create_retriever_tool",
|
||||
]
|
||||
|
@@ -1,25 +1,3 @@
|
||||
from langchain.schema import BaseRetriever
|
||||
from langchain.tools import Tool
|
||||
from langchain.tools.retriever import create_retriever_tool
|
||||
|
||||
|
||||
def create_retriever_tool(
|
||||
retriever: BaseRetriever, name: str, description: str
|
||||
) -> Tool:
|
||||
"""Create a tool to do retrieval of documents.
|
||||
|
||||
Args:
|
||||
retriever: The retriever to use for the retrieval
|
||||
name: The name for the tool. This will be passed to the language model,
|
||||
so should be unique and somewhat descriptive.
|
||||
description: The description for the tool. This will be passed to the language
|
||||
model, so should be descriptive.
|
||||
|
||||
Returns:
|
||||
Tool class to pass to an agent
|
||||
"""
|
||||
return Tool(
|
||||
name=name,
|
||||
description=description,
|
||||
func=retriever.get_relevant_documents,
|
||||
coroutine=retriever.aget_relevant_documents,
|
||||
)
|
||||
__all__ = ["create_retriever_tool"]
|
||||
|
@@ -1,4 +1,4 @@
|
||||
from typing import Any, Dict, List
|
||||
from typing import Any, Dict, List, Optional
|
||||
|
||||
from langchain.callbacks.manager import CallbackManagerForRetrieverRun
|
||||
from langchain.pydantic_v1 import root_validator
|
||||
@@ -17,6 +17,7 @@ class YouRetriever(BaseRetriever):
|
||||
"""
|
||||
|
||||
ydc_api_key: str
|
||||
k: Optional[int] = None
|
||||
endpoint_type: str = "web"
|
||||
|
||||
@root_validator(pre=True)
|
||||
@@ -45,6 +46,8 @@ class YouRetriever(BaseRetriever):
|
||||
for hit in results["hits"]:
|
||||
for snippet in hit["snippets"]:
|
||||
docs.append(Document(page_content=snippet))
|
||||
if self.k is not None and len(docs) >= self.k:
|
||||
return docs
|
||||
return docs
|
||||
elif self.endpoint_type == "snippet":
|
||||
results = requests.get(
|
||||
|
25
libs/langchain/langchain/tools/retriever.py
Normal file
25
libs/langchain/langchain/tools/retriever.py
Normal file
@@ -0,0 +1,25 @@
|
||||
from langchain.schema import BaseRetriever
|
||||
from langchain.tools import Tool
|
||||
|
||||
|
||||
def create_retriever_tool(
|
||||
retriever: BaseRetriever, name: str, description: str
|
||||
) -> Tool:
|
||||
"""Create a tool to do retrieval of documents.
|
||||
|
||||
Args:
|
||||
retriever: The retriever to use for the retrieval
|
||||
name: The name for the tool. This will be passed to the language model,
|
||||
so should be unique and somewhat descriptive.
|
||||
description: The description for the tool. This will be passed to the language
|
||||
model, so should be descriptive.
|
||||
|
||||
Returns:
|
||||
Tool class to pass to an agent
|
||||
"""
|
||||
return Tool(
|
||||
name=name,
|
||||
description=description,
|
||||
func=retriever.get_relevant_documents,
|
||||
coroutine=retriever.aget_relevant_documents,
|
||||
)
|
Reference in New Issue
Block a user