回复
BabyAGI Agent:LLM如何实现?
嘿,大家好!这里是一个专注于AI智能体的频道!
今天我们来聊聊一个超酷的东西——BabyAGI agent with Tools。这货是一个能跟数据库打交道的智能体!这是这个系列的第3篇。
首先,咱们得搭建一个向量存储和嵌入模型。这里我们用的是开源的Chroma和OpenAI的嵌入模型。别急,这就给你们上代码。
from langchain.embeddings.openai import OpenAIEmbeddings
from langchain.vectorstores import Chroma
embedding = OpenAIEmbeddings()
persist_directory = 'vector_store'
vectordb = Chroma(persist_directory=persist_directory, embedding_function=embedding)
有了这些,我们的BabyAGI就能长期存储结果,并且只提取最相关的信息。接下来,我们得创建一个chain,这个链会作为我们执行器的工具。
from langchain.chains import LLMChain
from langchain.prompts import PromptTemplate
todo_prompt_message = '你是一个制定待办事项清单的专家。给这个目标制定一个待办事项清单:{objective}'
todo_prompt = PromptTemplate.from_template(todo_prompt_message)
todo_chain = LLMChain(llm=OpenAI(temperature=0.1,
model = 'gpt-4-1106-preview'), prompt=todo_prompt)
然后,我们定义了工具和prompt,创建了一个agent。这个agent会用到我们之前设置好的工具和prompt。(参见前几天的《ReAct Agent:LLM如何实现?》推文)
from langchain.agents import AgentExecutor, Tool, ZeroShotAgent
from langchain.prompts import PromptTemplate
tools = [
execute_sql, get_table_columns, get_table_column_distr,
Tool(name="TODO", func=todo_chain.run, description="用于当你需要制定待办事项清单时。输入待办事项的目标。")
]
prefix = "你是一个基于以下目标执行任务的AI:{objective}..."
suffix = "问题:{task} {agent_scratchpad}"
prompt = ZeroShotAgent.create_prompt(
tools, prefix=prefix, suffix=suffix,
input_variables=["objective", "task", "context", "agent_scratchpad"]
)
llm = OpenAI(temperature=0.1)
llm_chain = LLMChain(llm=llm, prompt=prompt)
tool_names = [tool.name for tool in tools]
analyst_agent_babyagi = ZeroShotAgent(llm_chain=llm_chain, allowed_tools=tool_names)
analyst_agent_babyagi_executor = AgentExecutor.from_agent_and_tools(
agent=analyst_agent_babyagi, tools=tools, verbose=True
)
最后,我们定义BabyAGI执行器并运行它。
from langchain_experimental.autonomous_agents import BabyAGI
baby_agi = BabyAGI.from_llm(
llm=llm, vectorstore=vectordb,
task_execution_chain=analyst_agent_babyagi_executor,
verbose=True, max_iterations=10
)
baby_agi("我们有多少来自上海的活跃客户?")
看吧,我们的BabyAGI agent with Tools就这样诞生了。但是在执行时可能遇到了一些小问题,比如没有遵循输入模式,但这都是成长的烦恼嘛。通过不断的迭代和优化,我们的智能体会变得越来越聪明。
赞
收藏
回复
相关推荐