网站建设新手如何自己做网站/域名搜索引擎入口

网站建设新手如何自己做网站,域名搜索引擎入口,杭州模板网站制作方案,阿里接外包吗网站开发使用介绍 自定义工具时的元素概念介绍 在Langchain中,工具(Tool)是与语言模型交互的基本单元。以下是自定义工具时的关键元素: name 定义:工具的名称,用于唯一标识该工具。作用:当工具被集成…

使用介绍

自定义工具时的元素概念介绍

在Langchain中,工具(Tool)是与语言模型交互的基本单元。以下是自定义工具时的关键元素:

name
  • 定义:工具的名称,用于唯一标识该工具。
  • 作用:当工具被集成到Agent中时,Agent会根据工具名称来调用它。
description
  • 定义:工具的功能描述,通常是一个字符串。
  • 作用:帮助语言模型理解工具的作用。例如,在ReAct模式下,模型会根据工具的描述选择合适的工具来完成任务。
args_schema
  • 定义:工具的输入参数结构,通常使用Pydantic模型定义。
  • 如何使用
    • 定义一个继承自pydantic.BaseModel的类,指定工具的输入参数。
    • 将该类赋值给args_schema属性。
  • 示例
    from pydantic import BaseModel, Fieldclass SearchInput(BaseModel):query: str = Field(description="The search query")tool = StructuredTool(name="search",description="Searches the web for information.",args_schema=SearchInput,func=search_function
    )
    
return_direct
  • 定义:是否直接返回工具的结果,而不经过后续处理。
  • 作用:如果设置为True,工具的结果将直接返回给用户或Agent,而不会被进一步解析。

@tool/BaseTool/StructuredTool 的新建方式及参数介绍

@tool 装饰器
  • 同步工具
    from langchain.tools import tool@tool
    def search(query: str) -> str:return f"Search results for '{query}'"
    
  • 异步工具
    from langchain.tools import tool@tool
    async def async_search(query: str) -> str:return f"Async search results for '{query}'"
    
BaseTool 类
  • 同步工具
    from langchain.tools.base import BaseToolclass MyTool(BaseTool):name = "my_tool"description = "A custom tool"def _run(self, input_str: str) -> str:return f"Processed input: {input_str}"async def _arun(self, input_str: str) -> str:return f"Async processed input: {input_str}"
    
  • 参数
    • name:工具名称。
    • description:工具描述。
    • _run:同步执行函数。
    • _arun:异步执行函数(可选)。
StructuredTool 类
  • 同步工具
    from langchain.tools.base import StructuredTooldef search_function(query: str) -> str:return f"Search results for '{query}'"tool = StructuredTool(name="search",description="Searches the web for information.",args_schema=SearchInput,func=search_function
    )
    
  • 异步工具
    async def async_search_function(query: str) -> str:return f"Async search results for '{query}'"tool = StructuredTool(name="async_search",description="Performs an asynchronous web search.",args_schema=SearchInput,func=async_search_function
    )
    
使用场景
  • @tool:适合快速定义简单的工具。
  • BaseTool:适合需要更多自定义逻辑的工具。
  • StructuredTool:适合需要严格输入验证的工具。

工具异常处理方案 (ToolException)

如何使用函数进行异常处理
  • 在工具函数中捕获异常并返回友好的错误信息。
  • 示例:
    from langchain.tools.base import ToolExceptiondef error_handling_tool(input_str: str) -> str:try:# 模拟可能出错的操作if not input_str:raise ValueError("Input cannot be empty")return f"Processed input: {input_str}"except Exception as e:raise ToolException(f"Error in tool: {e}")
    
集成到工具中
  • 使用StructuredTool时,可以在func中添加异常处理逻辑。
  • 示例:
    def safe_search_function(query: str) -> str:try:if not query:raise ValueError("Query cannot be empty")return f"Search results for '{query}'"except Exception as e:raise ToolException(f"Search failed: {e}")tool = StructuredTool(name="safe_search",description="Safe search with error handling.",args_schema=SearchInput,func=safe_search_function
    )
    

普通调用和Agent调用

普通调用
  • 直接调用工具函数。
  • 示例:
    result = search("Langchain")
    print(result)  # 输出: Search results for 'Langchain'
    
Agent调用
  • 将工具集成到Agent中,通过Agent调用工具。
  • 示例:
    from langchain.agents import initialize_agent
    from langchain.llms import OpenAIllm = OpenAI()
    tools = [search]agent = initialize_agent(tools, llm, agent="zero-shot-react-description", verbose=True)
    response = agent.run("What is Langchain?")
    print(response)
    

5. 最佳实践

@tool 装饰器
  • 参数
    • 确保description清晰准确。
    • 如果工具需要复杂输入,考虑使用StructuredTool
  • 异常处理
    • 在工具函数中捕获所有可能的异常,并抛出ToolException
BaseTool
  • 参数
    • 明确定义_run_arun方法。
    • 使用args_schema确保输入格式正确。
  • 异常处理
    • _run_arun中捕获异常并抛出ToolException
StructuredTool
  • 参数
    • 使用args_schema定义输入参数。
    • 确保func函数逻辑清晰。
  • 异常处理
    • func中捕获异常并抛出ToolException
综合建议
  • 输入验证:始终验证输入数据,避免非法输入导致工具失败。
  • 日志记录:在工具中添加日志记录,便于调试和监控。
  • 文档化:为每个工具提供详细的description,帮助模型更好地理解和使用工具。

最佳实践

文字转SQL

1. 安装必要的库

首先,确保你已经安装了所需的库:

pip install langchain sqlalchemy openai
2. 创建 SQL 查询工具

我们将创建一个自定义的 SQL 查询工具,该工具可以执行 SQL 查询并返回结果。这里我们使用 SQLite 数据库作为示例。

2.1 定义工具类
from langchain.tools import BaseTool
from sqlalchemy import create_engine, textclass SQLQueryTool(BaseTool):name = "sql_query_tool"description = "A tool that executes SQL queries and returns the results."def __init__(self, db_url: str):self.engine = create_engine(db_url)def run(self, query: str) -> str:with self.engine.connect() as connection:result = connection.execute(text(query))rows = result.fetchall()columns = result.keys()return [dict(zip(columns, row)) for row in rows]
2.2 初始化工具
db_url = "sqlite:///example.db"  # 替换为你的数据库 URL
sql_query_tool = SQLQueryTool(db_url)
3. 创建自然语言到 SQL 的转换工具

我们将使用一个简单的自然语言处理库(如 sqlglot)来将自然语言文本转换为 SQL 查询。

3.1 安装 sqlglot
pip install sqlglot
3.2 定义转换工具类
import sqlglot
from langchain.tools import BaseToolclass NLtoSQLTool(BaseTool):name = "nl_to_sql_tool"description = "A tool that converts natural language to SQL queries."def run(self, nl_query: str) -> str:try:sql_query = sqlglot.transpile(nl_query, read="english", write="sql")[0]return sql_queryexcept Exception as e:return f"Error converting natural language to SQL: {e}"
3.3 初始化转换工具
nl_to_sql_tool = NLtoSQLTool()
4. 创建 LangChain 环境

我们将创建一个 LangChain 环境,并将两个工具添加到其中。

4.1 创建 Agent

我们将使用 OpenAILLMReAct 策略来创建一个 Agent。

from langchain.llms import OpenAI
from langchain.agents import initialize_agent, Tool# 初始化 OpenAI LLM
llm = OpenAI(api_key="your_openai_api_key")  # 替换为你的 OpenAI API 密钥# 创建工具列表
tools = [Tool(name=sql_query_tool.name,func=sql_query_tool.run,description=sql_query_tool.description),Tool(name=nl_to_sql_tool.name,func=nl_to_sql_tool.run,description=nl_to_sql_tool.description)
]# 初始化 Agent
agent = initialize_agent(tools, llm, agent="react-docstore", verbose=True)
5. 使用 Agent 执行自然语言查询

现在我们可以使用这个 Agent 来执行自然语言查询。

nl_query = "查询年龄大于25岁的用户"
response = agent.run(nl_query)
print(response)
6. 完整代码示例

以下是完整的代码示例,包含了上述所有步骤。

from langchain.tools import BaseTool
from sqlalchemy import create_engine, text
import sqlglot
from langchain.llms import OpenAI
from langchain.agents import initialize_agent, Tool# 定义 SQL 查询工具类
class SQLQueryTool(BaseTool):name = "sql_query_tool"description = "A tool that executes SQL queries and returns the results."def __init__(self, db_url: str):self.engine = create_engine(db_url)def run(self, query: str) -> str:with self.engine.connect() as connection:result = connection.execute(text(query))rows = result.fetchall()columns = result.keys()return [dict(zip(columns, row)) for row in rows]# 初始化 SQL 查询工具
db_url = "sqlite:///example.db"  # 替换为你的数据库 URL
sql_query_tool = SQLQueryTool(db_url)# 定义自然语言到 SQL 的转换工具类
class NLtoSQLTool(BaseTool):name = "nl_to_sql_tool"description = "A tool that converts natural language to SQL queries."def run(self, nl_query: str) -> str:try:sql_query = sqlglot.transpile(nl_query, read="english", write="sql")[0]return sql_queryexcept Exception as e:return f"Error converting natural language to SQL: {e}"# 初始化自然语言到 SQL 的转换工具
nl_to_sql_tool = NLtoSQLTool()# 初始化 OpenAI LLM
llm = OpenAI(api_key="your_openai_api_key")  # 替换为你的 OpenAI API 密钥# 创建工具列表
tools = [Tool(name=sql_query_tool.name,func=sql_query_tool.run,description=sql_query_tool.description),Tool(name=nl_to_sql_tool.name,func=nl_to_sql_tool.run,description=nl_to_sql_tool.description)
]# 初始化 Agent
agent = initialize_agent(tools, llm, agent="react-docstore", verbose=True)# 使用 Agent 执行自然语言查询
nl_query = "查询年龄大于25岁的用户"
response = agent.run(nl_query)
print(response)

调用API

1. 自定义插件的基本概念

LangChain 的插件机制允许你通过 Python 类来封装特定的功能。一个插件通常包含以下几个部分:

  • 初始化 (__init__):用于设置插件所需的配置或依赖。
  • 核心功能方法:实现插件的核心逻辑。
  • 与 LangChain 的集成:通过 LangChain 提供的接口(如 ToolRunnable)将插件注册到系统中。
2. 创建一个调用外部 API 的插件

假设我们有一个场景:需要调用一个天气 API 来获取某个城市的实时天气信息。我们将创建一个自定义插件来实现这一功能。

步骤 1: 定义插件类

首先,我们需要定义一个 Python 类来封装调用天气 API 的逻辑。

import requestsclass WeatherAPIPlugin:def __init__(self, api_key):"""初始化插件,设置 API 密钥。:param api_key: 天气 API 的密钥"""self.api_key = api_keyself.base_url = "https://api.weatherapi.com/v1/current.json"def get_weather(self, city):"""获取指定城市的实时天气信息。:param city: 城市名称:return: 天气信息的字符串描述"""params = {"key": self.api_key,"q": city}try:response = requests.get(self.base_url, params=params)response.raise_for_status()  # 检查请求是否成功data = response.json()weather_info = (f"当前 {city} 的天气情况:\n"f"温度: {data['current']['temp_c']}°C\n"f"湿度: {data['current']['humidity']}%\n"f"天气状况: {data['current']['condition']['text']}")return weather_infoexcept requests.exceptions.RequestException as e:return f"无法获取天气信息: {str(e)}"
步骤 2: 将插件封装为 LangChain 的 Tool

LangChain 提供了 Tool 类,用于将自定义功能集成到链式逻辑中。我们需要将 WeatherAPIPlugin 的功能封装为一个 Tool

from langchain.tools import Tool# 假设你的 API 密钥如下
API_KEY = "your_weather_api_key_here"# 实例化插件
weather_plugin = WeatherAPIPlugin(api_key=API_KEY)# 将插件封装为 LangChain 的 Tool
weather_tool = Tool(name="Weather API Tool",func=weather_plugin.get_weather,description="获取指定城市的实时天气信息。输入应为城市名称,例如 '北京'。"
)
步骤 3: 使用插件

现在我们可以将这个插件集成到 LangChain 的工作流中。以下是一个简单的示例,展示如何调用插件并获取天气信息。

from langchain.agents import initialize_agent, AgentType
from langchain.llms import OpenAI# 初始化 LLM(这里使用 OpenAI 的 GPT 模型)
llm = OpenAI(temperature=0, openai_api_key="your_openai_api_key_here")# 初始化代理(Agent),并将插件添加到工具列表中
agent = initialize_agent(tools=[weather_tool],llm=llm,agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,verbose=True
)# 调用插件
response = agent.run("请告诉我北京的天气情况。")
print(response)
3. 示例运行结果

假设天气 API 返回的数据如下:

{"current": {"temp_c": 15,"humidity": 60,"condition": {"text": "晴朗"}}
}

运行上述代码后,输出可能如下:

当前 北京 的天气情况:
温度: 15°C
湿度: 60%
天气状况: 晴朗

智能家居插件

1. 背景知识:LangChain 的 Agent 和 Tool

LangChain 提供了一个灵活的架构,允许我们定义 Tool(工具)和 Agent(代理)。Tool 是封装特定功能的模块,而 Agent 则负责根据用户输入选择合适的 Tool 并执行任务。

对于家庭硬件的控制,我们可以将硬件接口封装为一个 Tool,然后通过 LangChain 的 Agent 来调用它。

2. 家庭硬件的典型场景

假设你有一个家庭自动化系统,其中包含以下硬件:

  • 灯光控制器:可以打开或关闭灯光。
  • 温度传感器:可以读取当前室内温度。
  • 窗帘控制器:可以打开或关闭窗帘。

我们将这些硬件的功能封装为 LangChain 的 Tool,并通过自然语言交互来控制它们。

3. 创建自定义插件
3.1 硬件接口模拟

为了演示方便,我们假设有一个 Python API 可以与家庭硬件通信。以下是一个简单的模拟接口:

class HomeHardwareAPI:def __init__(self):self.light_status = "off"self.temperature = 22.5  # 模拟当前温度self.curtain_status = "closed"def toggle_light(self, action):if action.lower() == "on":self.light_status = "on"return "Light turned on."elif action.lower() == "off":self.light_status = "off"return "Light turned off."else:return "Invalid action."def get_temperature(self):return f"Current temperature is {self.temperature}°C."def control_curtains(self, action):if action.lower() == "open":self.curtain_status = "open"return "Curtains opened."elif action.lower() == "close":self.curtain_status = "closed"return "Curtains closed."else:return "Invalid action."
3.2 封装为 LangChain 工具

接下来,我们将上述硬件接口封装为 LangChain 的 Tool

from langchain.agents import Tool
from langchain.chains.conversation.memory import ConversationBufferMemory
from langchain.chat_models import ChatOpenAI
from langchain.agents import initialize_agent# 假设我们已经有一个硬件 API 实例
home_hardware_api = HomeHardwareAPI()# 定义工具函数
def toggle_light(action):return home_hardware_api.toggle_light(action)def get_temperature():return home_hardware_api.get_temperature()def control_curtains(action):return home_hardware_api.control_curtains(action)# 将工具封装为 LangChain 的 Tool
tools = [Tool(name="Toggle Light",func=lambda action: toggle_light(action),description="Use this tool to turn the light on or off. Input should be 'on' or 'off'."),Tool(name="Get Temperature",func=get_temperature,description="Use this tool to get the current room temperature."),Tool(name="Control Curtains",func=lambda action: control_curtains(action),description="Use this tool to open or close the curtains. Input should be 'open' or 'close'.")
]
4. 初始化 Agent

LangChain 的 Agent 负责解析用户的自然语言输入并调用相应的 Tool。以下是初始化 Agent 的代码:

# 初始化对话记忆
memory = ConversationBufferMemory(memory_key="chat_history")# 使用 OpenAI 的 GPT-3.5-turbo 模型
llm = ChatOpenAI(temperature=0)# 初始化 Agent
agent_chain = initialize_agent(tools, llm, agent="chat-conversational-react-description", verbose=True, memory=memory
)
5. 实际场景调用
5.1 用户输入示例

假设用户通过自然语言与系统交互,以下是一些可能的输入及其响应:

# 示例 1: 打开灯光
response = agent_chain.run("Please turn the light on.")
print(response)  # 输出: Light turned on.# 示例 2: 获取当前温度
response = agent_chain.run("What is the current temperature?")
print(response)  # 输出: Current temperature is 22.5°C.# 示例 3: 打开窗帘
response = agent_chain.run("Can you open the curtains?")
print(response)  # 输出: Curtains opened.# 示例 4: 关闭灯光
response = agent_chain.run("Turn the light off.")
print(response)  # 输出: Light turned off.
6. 运行结果分析
  • 当用户输入“Please turn the light on.”时,Agent 会识别出这是对灯光的操作请求,并调用 toggle_light 工具。
  • 当用户输入“What is the current temperature?”时,Agent 会调用 get_temperature 工具返回当前温度。
  • 类似地,其他命令也会被正确解析并执行。
7. 扩展功能
7.1 添加更多硬件支持

如果需要支持更多的硬件(例如空调、音响等),只需扩展 HomeHardwareAPI 类并添加相应的 Tool

7.2 集成真实硬件

在实际应用中,你可以通过 MQTT、HTTP API 或其他协议与真实硬件通信。例如:

  • 使用 MQTT 订阅/发布消息来控制灯光和窗帘。
  • 通过 HTTP 请求获取传感器数据。
7.3 自然语言优化

为了让 Agent 更好地理解复杂的用户输入,可以训练一个定制化的语言模型,或者使用更高级的提示工程技巧。

8. 总结

通过 LangChain 的 ToolAgent,我们可以轻松实现家庭硬件的智能化控制。本文展示了如何将硬件接口封装为 LangChain 的工具,并通过自然语言交互调用这些工具。希望这个示例能帮助你更好地理解和应用 LangChain!

内置Tools

Langchain 内置工具介绍

Langchain 提供了丰富的内置工具,这些工具分为两类:

  1. langchain.tools:核心库中的工具。
  2. langchain_community.tools:社区扩展的工具。

1. AI 工具 (生成文本)

简介
  • 使用 LLM 生成文本。
  • 常用于回答问题、生成内容等。
代码示例
from langchain.tools import AI
from langchain.llms import OpenAIllm = OpenAI(temperature=0)
ai_tool = AI(name="ai", llm=llm, description="Generates text using an LLM.")response = ai_tool.run("Write a short story about a cat.")
print(response)

2. Wikipedia 工具 (搜索维基百科)

简介
  • 搜索维基百科以获取信息。
  • 适合需要权威知识的任务。
代码示例
from langchain.tools import WikipediaQueryRun
from langchain.utilities import WikipediaAPIWrapperwiki = WikipediaAPIWrapper()
wikipedia_tool = WikipediaQueryRun(api_wrapper=wiki, name="wikipedia")response = wikipedia_tool.run("Python programming language")
print(response)

3. Arxiv 工具 (搜索学术论文)

简介
  • 搜索 Arxiv 上的学术论文。
  • 适合科研场景。
代码示例
from langchain.tools import ArxivQueryRun
from langchain.utilities import ArxivAPIWrapperarxiv = ArxivAPIWrapper()
arxiv_tool = ArxivQueryRun(api_wrapper=arxiv, name="arxiv")response = arxiv_tool.run("machine learning")
print(response)

4. SerpAPI 工具 (搜索引擎)

简介
  • 使用 SerpAPI 搜索网络信息。
  • 需要 API 密钥。
代码示例
from langchain.tools import SerpAPIWrapperserp_api_key = "your_serp_api_key"
search = SerpAPIWrapper(serpapi_api_key=serp_api_key)response = search.run("LangChain tutorial")
print(response)

5. GoogleSearch 工具 (谷歌搜索)

简介
  • 使用 Google Custom Search API 搜索信息。
  • 需要 API 密钥和搜索引擎 ID。
代码示例
from langchain.tools import GoogleSearchResultsgoogle_api_key = "your_google_api_key"
search_engine_id = "your_search_engine_id"search = GoogleSearchResults(api_key=google_api_key, k=3, cx=search_engine_id)
response = search.run("LangChain examples")
print(response)

6. DuckDuckGoSearch 工具 (DuckDuckGo 搜索)

简介
  • 使用 DuckDuckGo 搜索信息。
  • 不需要 API 密钥。
代码示例
from langchain.tools import DuckDuckGoSearchRunduckduckgo_tool = DuckDuckGoSearchRun()response = duckduckgo_tool.run("LangChain documentation")
print(response)

7. SQLDatabase 工具 (数据库查询)

简介
  • 查询 SQL 数据库。
  • 需要连接到数据库。
代码示例
from langchain.tools import SQLDatabaseTool
from langchain.utilities import SQLDatabasedb = SQLDatabase.from_uri("sqlite:///example.db")
sql_tool = SQLDatabaseTool(db=db, name="sql_database")response = sql_tool.run("SELECT * FROM users LIMIT 5;")
print(response)

8. YouTubeSearch 巐具 (YouTube 搜索)

简介
  • 搜索 YouTube 视频。
  • 需要 API 密钥。
代码示例
from langchain.tools import YouTubeSearchToolyoutube_tool = YouTubeSearchTool()response = youtube_tool.run("LangChain tutorial")
print(response)

9. FileManagement 工具 (文件管理)

简介
  • 管理本地或远程文件。
  • 支持读取、写入和删除文件。
代码示例
from langchain.tools.file_management import ReadFileTool, WriteFileTool# 写入文件
write_tool = WriteFileTool()
write_tool.run("example.txt", "Hello, LangChain!")# 读取文件
read_tool = ReadFileTool()
content = read_tool.run("example.txt")
print(content)

10. HumanInput 工具 (人工输入)

简介
  • 请求人工输入。
  • 适用于需要用户干预的场景。
代码示例
from langchain.tools import HumanInputRunhuman_tool = HumanInputRun()response = human_tool.run("What is your opinion on this?")
print(response)

总结

工具名称主要用途
AI生成文本
Wikipedia搜索维基百科
Arxiv搜索学术论文
SerpAPI使用 SerpAPI 搜索网络信息
GoogleSearch使用 Google 搜索信息
DuckDuckGoSearch使用 DuckDuckGo 搜索信息
SQLDatabase查询 SQL 数据库
YouTubeSearch搜索 YouTube 视频
FileManagement文件管理
HumanInput请求人工输入

内置工具包

内置工具包的使用 (langchain_community.agent_toolkits)

langchain_community.agent_toolkits 提供了一系列预定义的工具包(toolkits),这些工具包将多个相关工具组合在一起,方便快速构建特定领域的 Agent

1. Zapier Toolkit (集成 Zapier 自动化工具)

简介
  • 使用 Zapier API 调用各种自动化任务。
  • 需要 Zapier 的 API 密钥。
代码示例
from langchain_community.agents.agent_toolkits import ZapierToolkit
from langchain_community.utilities.zapier import ZapierNLAWrapper# 初始化 Zapier NLA Wrapper
zapier = ZapierNLAWrapper()# 创建 Zapier Toolkit
toolkit = ZapierToolkit.from_zapier_nla_wrapper(zapier)# 查看工具包中的工具
print(toolkit.get_tools())

2. Conversational Agent Toolkit (对话型 Agent 工具包)

简介
  • 专为对话型 Agent 设计。
  • 包含问答、搜索、生成等工具。
代码示例
from langchain_community.agents.agent_toolkits import create_conversational_react_agent
from langchain_community.tools import AI, WikipediaQueryRun
from langchain_community.utilities.wikipedia import WikipediaAPIWrapper
from langchain.llms import OpenAI# 初始化 LLM 和工具
llm = OpenAI(temperature=0)
wiki = WikipediaAPIWrapper()
tools = [AI(name="ai", llm=llm, description="Generates text using an LLM."),WikipediaQueryRun(api_wrapper=wiki, name="wikipedia")]# 创建对话型 Agent
agent = create_conversational_react_agent(llm, tools)# 运行 Agent
response = agent.run("What is the capital of France?")
print(response)

3. SQL Database Toolkit (SQL 数据库工具包)

简介
  • 用于查询 SQL 数据库。
  • 支持 SQLite、PostgreSQL 等数据库。
代码示例
from langchain_community.agents.agent_toolkits import SQLDatabaseToolkit
from langchain_community.utilities.sql_database import SQLDatabase
from langchain_community.agents.agent_toolkits import create_sql_agent
from langchain.llms import OpenAI# 连接数据库
db = SQLDatabase.from_uri("sqlite:///example.db")# 创建 SQL Toolkit
toolkit = SQLDatabaseToolkit(db=db)# 创建 SQL Agent
agent = create_sql_agent(llm=OpenAI(temperature=0),toolkit=toolkit,verbose=True
)# 查询数据库
response = agent.run("How many users are in the database?")
print(response)

4. GitHub Toolkit (GitHub 工具包)

简介
  • 用于与 GitHub 交互。
  • 支持查询仓库、提交、Issues 等。
代码示例
from langchain_community.agents.agent_toolkits import GitHubToolkit
from langchain_community.utilities.github import GitHubAPIWrapper# 初始化 GitHub API Wrapper
github = GitHubAPIWrapper()# 创建 GitHub Toolkit
toolkit = GitHubToolkit(github_api_wrapper=github)# 查看工具包中的工具
print(toolkit.get_tools())

5. VectorStore Toolkit (向量存储工具包)

简介
  • 用于与向量数据库交互。
  • 常用于语义搜索和知识库管理。
代码示例
from langchain_community.agents.agent_toolkits import VectorStoreToolkit
from langchain_community.vectorstores import Chroma
from langchain_community.embeddings import OpenAIEmbeddings
from langchain_community.agents.agent_toolkits import create_vectorstore_agent
from langchain.llms import OpenAI# 初始化向量存储
vectorstore = Chroma(embedding_function=OpenAIEmbeddings())# 创建 VectorStore Toolkit
toolkit = VectorStoreToolkit(vectorstore=vectorstore)# 创建 VectorStore Agent
agent = create_vectorstore_agent(llm=OpenAI(temperature=0),toolkit=toolkit,verbose=True
)# 搜索向量数据库
response = agent.run("What is the most relevant document to 'LangChain'?")
print(response)

6. YouTube Toolkit (YouTube 工具包)

简介
  • 用于与 YouTube 交互。
  • 支持搜索视频、获取视频信息等。
代码示例
from langchain_community.agents.agent_toolkits import YouTubeToolkit
from langchain_community.utilities.youtube import YouTubeAPIWrapper# 初始化 YouTube API Wrapper
youtube = YouTubeAPIWrapper()# 创建 YouTube Toolkit
toolkit = YouTubeToolkit(youtube=youtube)# 查看工具包中的工具
print(toolkit.get_tools())

7. SerpAPI Toolkit (搜索引擎工具包)

简介
  • 用于搜索网络信息。
  • 支持 Google、Bing 等搜索引擎。
代码示例
from langchain_community.agents.agent_toolkits import SerpAPIToolkit
from langchain_community.utilities.serpapi import SerpAPIWrapper# 初始化 SerpAPI Wrapper
serpapi = SerpAPIWrapper(serpapi_api_key="your_serp_api_key")# 创建 SerpAPI Toolkit
toolkit = SerpAPIToolkit(serpapi_wrapper=serpapi)# 查看工具包中的工具
print(toolkit.get_tools())

8. File Management Toolkit (文件管理工具包)

简介
  • 用于管理本地或远程文件。
  • 支持读取、写入和删除文件。
代码示例
from langchain_community.agents.agent_toolkits import FileManagementToolkit# 创建 File Management Toolkit
toolkit = FileManagementToolkit(root_dir="./files")# 查看工具包中的工具
print(toolkit.get_tools())

总结

工具包名称主要用途
Zapier Toolkit集成 Zapier 自动化任务
Conversational Agent Toolkit对话型 Agent 工具包
SQL Database Toolkit查询 SQL 数据库
GitHub Toolkit与 GitHub 交互
VectorStore Toolkit向量数据库交互
YouTube Toolkit与 YouTube 交互
SerpAPI Toolkit搜索引擎工具包
File Management Toolkit文件管理

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/74441.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Gitee上库常用git命令

Gitee上库常用git命令 1、Fork 项目2、个人仓库修改3、追加提交4、创建PR5、多笔commit合一 1、Fork 项目 2、个人仓库修改 git add . // -s 表示自动添加邮箱签名信息,-m表示其后跟随commit描述 git commit -sm “add transition freeze” git push origin [目标…

Java 大视界 -- Java 大数据在智慧农业精准灌溉与施肥决策中的应用(144)

💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…

Redux,React-redux。基础

状态管理库,集中式存储状态,管理状态 ✅ redux //简单实现 redux源码 export function createStore(reducer) {// reducer由用户编写, 必须是一个函数,dispatch的时候,reducer要执行if (typeof reducer ! function) t…

5.2 位运算专题:LeetCode 268. 丢失的数字

1. 题目链接 LeetCode 268. 丢失的数字 2. 题目描述 给定一个包含 [0, n] 范围内 n 个不同整数的数组 nums(实际长度为 n),找出数组中缺失的那个数字。 示例: 输入:nums [3,0,1] → 输出:2(…

【Android】VehiclePropertyAccess引起CarService崩溃

VehiclePropertyAccess引起CarService崩溃 VehiclePropertyAccess VehiclePropertyAccess属性,用于定义车辆属性的访问权限。权限包括 读:READ,只可以读取,不能写入。 VehiclePropertyAccess:READ写:WRITE&#xf…

SpringCloud配置中心:Config Server与配置刷新机制

文章目录 引言一、Config Server基础架构1.1 Server端配置1.2 配置文件命名规则 二、Config Client配置2.1 Client端配置2.2 配置注入与使用 三、配置刷新机制3.1 手动刷新配置3.2 使用Spring Cloud Bus实现自动刷新3.3 配置仓库Webhook自动触发刷新 四、高级配置管理策略4.1 配…

PyTorch生成式人工智能实战:从零打造创意引擎

PyTorch生成式人工智能实战:从零打造创意引擎 0. 前言1. 生成式人工智能1.1 生成式人工智能简介1.2 生成式人工智能技术 2. Python 与 PyTorch2.1 Python 编程语言2.2 PyTorch 深度学习库 3. 生成对抗网络3.1 生成对抗网络概述3.2 生成对抗网络应用 4. Transformer4…

【计算机网络】-计算机网络期末复习题复习资料

一、计算机网络体系结构(800字) 1. OSI参考模型 七层结构:物理层→数据链路层→网络层→传输层→会话层→表示层→应用层 各层核心功能: 物理层:比特流传输(如RJ45、光纤接口) 数据链路层&…

31天Python入门——第9天:再学函数

你好,我是安然无虞。 文章目录 再学函数1. 变量在函数中的作用域2. 函数的参数传递.补充学习: 不定长参数*args和**kwargs 3. 值传递和引用传递补充学习: 把函数作为参数传递 4. 匿名函数5. python中内置的常用函数zip()map()filter()all()any() 6. 函数练习 再学函…

EasyUI数据表格中嵌入下拉框

效果 代码 $(function () {// 标记当前正在编辑的行var editorIndex -1;var data [{code: 1,name: 1,price: 1,status: 0},{code: 2,name: 2,price: 2,status: 1}]$(#dg).datagrid({data: data,onDblClickCell:function (index, field, value) {var dg $(this);if(field ! …

【C语言】多进程/多线程

【C语言】多进程/多线程 参考链接多进程/多线程服务器1. 多进程服务器2. 多线程服务器 结语参考链接 参考链接 c 中文网 菜鸟 c 多进程/多线程服务器 多进程和多线程是常用的并发编程技术。它们都允许程序同时执行多个任务,提高了系统的资源利用率和程序的运行效率…

mysql 磐维(opengauss)tidb误删数据之高级恢复

Mysql参考: Mysql 8.0 XtraBackupMysqlbinlog 完全恢复 - 墨天轮 Mysql 8.0 XtraBackupMysqlbinlog 完全恢复[TOC]# 一、安装mysql 8.0.19## 1.1https://www.modb.pro/db/509223MySQL 的全量备份、增量备份与 Binlog 时间点恢复_mysqlbinlog自动备份吗-CSDN博客文章…

3. 轴指令(omron 机器自动化控制器)——>MC_SetPosition

机器自动化控制器——第三章 轴指令 11 MC_SetPosition变量▶输入变量▶输出变量▶输入输出变量 功能说明▶时序图▶重启动运动指令▶多重启运动指令▶异常 MC_SetPosition 将轴的指令当前位置和反馈当前位置变更为任意值。 指令名称FB/FUN图形表现ST表现MC_SetPosition当前位…

MySQL面试专题

1.什么是BufferPool? Buffer Pool基本概念 Buffer Pool:缓冲池,简称BP。其作用是用来缓存表数据与索引数据,减少磁盘IO操作,提升效率。 Buffer Pool由缓存数据页(Page) 和 对缓存数据页进行描述的控制块 组成, 控制…

调用百度api实现语音识别(python)

该代码实现了一个企业级的语音识别解决方案,通过调用百度语音识别API,实现实时录音识别和对已有音频语音识别功能。 百度智能云:请自行访问百度智能云,开通免费的语音识别功能,获取API_KEY和SECRET_KEY。操作按照百度流程即可,可免费申请。 首先,配置下百度API和描述下错…

KRaft模式

目录标题 Kraft模式**1. 什么是Kraft模式?****2. 为什么引入Kraft模式?****3. 核心优势****4. 架构与工作原理****5. 部署与配置要点****6. 适用场景与最佳实践****总结**KIP-833: Mark KRaft as Production Ready除了Kraft模式,Kafka还有以下…

常见框架漏洞之一:Thinkphp5x

ThinkPHP是为了简化企业级应⽤开发和敏捷WEB应⽤开发⽽诞⽣的,是⼀个快速、兼容⽽且简单的轻量级国产PHP开发框架,诞⽣于2006年初,原名FCS,2007年元旦正式更名为 ThinkPHP,遵循Apache2开源协议发布,从Stru…

2025年优化算法:龙卷风优化算法(Tornado optimizer with Coriolis force,TOC)

龙卷风优化算法(Tornado optimizer with Coriolis force)是发表在中科院二区期刊“ARTIFICIAL INTELLIGENCE REVIEW”(IF:11.7)的2025年智能优化算法 01.引言 当自然界的狂暴之力,化身数字世界的智慧引擎&…

Mysql表的简单操作

🏝️专栏:Mysql_猫咪-9527的博客-CSDN博客 🌅主页:猫咪-9527-CSDN博客 “欲穷千里目,更上一层楼。会当凌绝顶,一览众山小。” 目录 3.1 创建表 3.2 查看表结构 3.3 修改表 1. 添加字段 2. 修改字段 3…

【云馨AI-大模型】自动化部署Dify 1.1.2,无需科学上网,Linux环境轻松实现,附Docker离线安装等

Dify介绍 官网:https://dify.ai/zh生成式 AI 应用创新引擎开源的 LLM 应用开发平台。提供从 Agent 构建到 AI workflow 编排、RAG 检索、模型管理等能力,轻松构建和运营生成式 AI 原生应用。 Dify安装脚本 目录创建 mkdir -p /data/yunxinai &&a…