1.Agents 包括几个关键组件:
- *Agent*: 用于生成指令和执行动作的代理。
- *Tool*: 用于执行动作的函数。
- *Memory*: 用于存储历史对话和生成的指令。
- *LLM*: 用于生成指令和执行动作的 LLM。
2.例如:计算\搜索\知识库检索(多轮对话)
from langchain.agents import load_tools
from langchain.agents import initialize_agent
from langchain_community.llms.tongyi import Tongyi
from langchain.memory import ConversationBufferMemory
from langchain.agents import AgentType
from langchain.agents import tool
from langchain_community.vectorstores import Chroma
from langchain_community.embeddings.dashscope import DashScopeEmbeddings
# 初始化 OpenAI 语言模型
llm = Tongyi()
import os
os.environ["SERPAPI_API_KEY"] = 'db166b810c6b85674b6ceab3bd4e10d5048e1ba837db1c0d962ad91b34558805'
# 创建会话缓冲内存,用于保存对话历史
memory = ConversationBufferMemory(
memory_key="chat_history",
)
@tool("kgg_search")
def kgg_search(query: str):
"""当你需要回答NBA冠军球队的问题时才会使用这个工具。"""
db = Chroma(embedding_function=DashScopeEmbeddings(),persist_directory="./chroma")
# print(db.__len__())
docs = db.similarity_search(query,k=1)
ret = ""
for doc in docs:
ret +=doc.page_content+"\n"
return ret
tools = load_tools(["serpapi", "llm-math"], llm=llm)
tools.append(kgg_search)
agent = initialize_agent(
tools,
llm,
agent=AgentType.CONVERSATIONAL_REACT_DESCRIPTION,
memory=memory,#记忆组件
verbose=True,
)
agent.invoke("我是张三,今年18岁,性别女,现在在深圳工作,工作年限1年,月薪5000元")
print(agent.invoke("1+5*6%2=?"))
标签:自定义,tools,Agent,langchain,agent,llm,memory,import,TOOLs
From: https://blog.csdn.net/Mooczx/article/details/141827147