LangChain Agent 使用网络搜索来回答用户的问题,此代理仅有一个工具,即 Tavily API 用来搜索网络。
tools = [TavilySearchResults(max_results=1)]
考虑该问题:IBM 是在哪一年成立的,苹果又是在哪一年成立的?
及其回答如下,共用了 165 个 token,费用为 $0.0000594。
使用 88 个提示令牌,每个令牌费用为 $0.0000132,以及 77 个完成令牌,每个令牌费用为 $0.0000462。第一个令牌的时间为 1389 毫秒,这对实时流传输响应体验至关重要,这意味着用户要等待的时间是第一个令牌生成所需的时间。输出令牌的价格是输入令牌的四倍左右。
基本配置(开始使用指南)下面我将根据Python代码中定义的方式设置LangSmith集成。可以在LangSmith控制台中找到langChain API密钥,项目名称可以是任意指定的名字。
import os
from uuid import uuid4
unique_id = uuid4().hex[0:8]
os.environ["LANGCHAIN_TRACING_V2"] = "true"
os.environ["LANGCHAIN_PROJECT"] = "OpenAI_SM_Agent_1"
os.environ["LANGCHAIN_ENDPOINT"] = "https://api.smith.langchain.com"
os.environ["LANGCHAIN_API_KEY"] = "# 这里填写LangSmith API密钥"
需要添加这两个平台的网页搜索API密钥。
# 输入你的OPENAI_API_KEY和TAVILY_API_KEY
print("请输入你的OPENAI_API_KEY:")
os.environ["OPENAI_API_KEY"] = getpass.getpass()
print("请输入你的TAVILY_API_KEY:")
os.environ["TAVILY_API_KEY"] = getpass.getpass()
模型被设置为:
llm = ChatOpenAI(model="gpt-4o-mini") # llm模型 # 初始化ChatOpenAI模型,设置模型为"gpt-4o-mini"
LangSmith(一个语言学相关的平台)
在 LangSmith 平台上,可以找到 OpenAI_SM_Agent_1
项目,可以看到该项目内的五个运行记录。选择第一个运行记录,可以看到每个步骤的具体情况,包括每一步的成本和执行时间和延迟。
LangSmith 还允许创建数据集,输出可以被标注和分类,标记为正确或错误的选项,并可以运行自动评估来检查正确性。
代理执行过程代理将复杂的用户问题分解成更小的问题,接着分别回答这些问题。
这段代码演示了如何使用LangChain框架设置并使用来自OpenAI的LLM。它还集成了Tavily搜索引擎,以增强信息检索。
搜索LangChain的网页代理
### 安装必要的包
pip install -qU langchain-openai langchain langchain_community
### 导入所需的模块
import getpass
import os
### 设置环境变量以存储 API 密钥
os.environ["OPENAI_API_KEY"] = getpass.getpass()
os.environ["TAVILY_API_KEY"] = getpass.getpass()
### 初始化 OpenAI LLM
from langchain_openai import ChatOpenAI
###
llm = ChatOpenAI(model="gpt-4o-mini")
### 导入必要的 LangChain 组件
from langchain.agents import AgentExecutor, create_tool_calling_agent
from langchain_community.tools.tavily_search import TavilySearchResults
from langchain_core.prompts import ChatPromptTemplate
### 设置 Tavily 搜索工具
tools = [TavilySearchResults(max_results=1)]
### 创建一个聊天提示模板
prompt = ChatPromptTemplate.from_messages(
[
(
"system",
"请使用 tavily_search_results_json 工具来查找信息。",
),
("placeholder", "{chat_history}"),
("human", "{input}"),
("placeholder", "{agent_scratchpad}"), # 注意:这是一个技术术语,用于原始代码中
]
)
### 构建工具代理
agent = create_tool_calling_agent(llm, tools, prompt)
### 创建代理执行器,传递代理和工具
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
### 调用代理执行器:
agent_executor.invoke({"input": "IBM 创立于哪一年?Apple 又是在哪一年创立的?"})
这是代理的输出。很明显有两个查询:IBM 成立的年份
和 苹果成立的年份
,最终输出结合了来自网络的参考资料。
> 进入新的AgentExecutor链...
调用:`tavily_search_results_json`,参数为 `{'query': 'year IBM founded'}`
[{'url': 'https://en.wikipedia.org/wiki/History_of_IBM', 'content': '在董事会的支持下,管理层开始实施一项计划,将IBM拆分成越来越独立的业务单元(例如处理器、存储、软件、服务、打印机等),以更有效地与更专注、更灵活且成本结构更低的竞争对手竞争。[需要引证]\nIBM也开始将其许多部门分拆为独立的子公司(所谓的“小蓝”),以使其公司更具管理性并通过让其他投资者资助这些公司来简化IBM。[180][181] 这些包括AdStar(专注于磁盘驱动器和其他数据存储产品,成为世界上最大的数据存储业务);IBM Application Business Systems(专注于中型计算机);IBM Enterprise Systems(专注于大型机);Pennant Systems(专注于中型和大型打印机);Lexmark(专注于小型打印机、键盘和打字机,如Selectric)等。[183] Lexmark在成立后不久被Clayton & Dubilier以杠杆收购的方式收购。[184]\n1992年9月,IBM将其各种非大型机和非中型个人电脑制造部门合并并分拆为一个称为IBM个人电脑公司(IBM PC Co.)的全资子公司。[185][186] 购买往往由中层管理人员和高级职员发起,他们看到了一旦革命性的VisiCalc电子表格被更强大和稳定的Lotus 1-2-3取代的潜力。[需要引证]\nIBM在欧洲和美国的大型机市场的主导地位鼓励了现有客户购买其PC,反之亦然,随着销售的增长,客户也开始购买更大规模的IBM计算机。[171][173][174][167][162] 与BUNCH和其他竞争对手不同,IBM迅速适应了零售市场,[171][175] 其自有销售团队首次与外部零售商竞争。[162] 美国政府的案件由四位美国总统及其司法部长支持,于1982年被里根总统的助理总检察长威廉·巴克斯特认定为“毫无根据”而被驳回。[315]\nCDC在明尼苏达州的联邦法院对IBM提起反垄断诉讼,指控IBM违反谢尔曼反垄断法第2条,垄断了计算机市场,其中包括宣布无法交付的产品等行为。[316] 1965年的一份IBM内部备忘录指出,Control Data公开将其收益下降归咎于IBM及其频繁的产品和价格变动。到1981年,其股价下降了22%。[166] IBM在当年上半年的收益增长了5.3%,是通货膨胀率的三分之一,而DEC的增长超过35%。[165] 尽管IBM开始出售小型计算机,[170] 但在1982年1月,司法部结束了反垄断诉讼,因为《纽约时报》报道,政府“认识到计算机专家和证券分析师长期以来得出的结论:IBM不再主导计算机行业”。[147]\nIBM希望避免在新的个人计算机行业出现同样的结果。[169]他认为公司没有被掠夺,其租赁的机器没有被没收,IBM继续通过其日内瓦子公司获得收入。[86] 布莱克认为,IBM在其业务关系上超过了应该放弃的地步,为第三帝国维持并扩大了服务[86] 直到1941年美国向德国宣战后没收了Dehomag。[需要引证]\nIBM对其指控进行了回应,称这些指控基于已知的事实和先前披露的文件,声称没有新发现。'}]
调用:`tavily_search_results_json`,参数为 `{'query': 'year Apple founded'}`
[{'url': 'https://en.wikipedia.org/wiki/History_of_Apple_Inc.', 'content': '一家零售连锁店的负责人表示,“似乎IBM比Apple更清楚Apple II成功的秘诀。”[78]Gene Amdahl预测Apple将成为IBM击败的众多“大胆年轻公司”之一。[88]\n到1984年,媒体将这两家公司称为死对头,但IBM的个人电脑年收入达到40亿美元,是Apple的两倍多,相当于它和接下来的三家公司的销售额之和。[90]《财富》杂志的一项调查发现,56%的拥有个人电脑的美国公司使用IBM个人电脑,而Apple只有16%。[91] 小型企业、学校和一些家庭成为II的主要市场。[76]\nXerox PARC和Lisa[编辑]\nApple Computer专注于Apple III,这是另一种文本基础计算机。1979年,Apple II被选为商业世界的第一个“杀手级应用”:VisiCalc,一个电子表格。[55] 如此重要,以至于Apple II成为了John Markoff描述的“VisiCalc配件”,该应用为计算机创造了商业市场,为家庭用户提供了购买的额外理由:兼容办公环境。[55] 在VisiCalc之前,Apple在竞争中处于第三位,落后于Commodore和Tandy。[58][59]\nApple II是1977年“三位一体”计算机之一,通常被认为创造了家用计算机市场(其他两个是Commodore PET和Tandy Corporation TRS-80)。[60]在发布2011年第一季度业绩后,微软的净利润为52亿美元,低于苹果的60亿美元,这是苹果在季度中的净利润。[182][183]两家公司在4月下旬宣布利润,这是20年来微软的利润首次低于苹果的利润,[184] Ars Technica将其描述为“十年前无法想象的情况”。[182]\n《卫报》报道,其中一个原因是PC软件的重要性下降,而苹果在平板电脑和智能手机市场上表现强劲。[184]其中一个重要原因是该季度PC销量意外下滑。[184]不过,他信守诺言,向两位Steve支付了承诺的钱。[39][37][38][40]\nApple I于1976年7月作为一款组装电路板上市,零售价为666.66美元。[41][42][43]Wozniak后来表示,他根本不知道数字和兽魔标记之间的关联,而是因为喜欢重复数字而想出了这个价格。[39]最终售出了大约200台Apple I。[44]\nApple I计算机有一些值得注意的特性,包括使用电视机显示,而许多机器根本没有显示。新公司随后在九个月前收购了两位Steve所成立的合伙公司。[46]\n1977年2月,Markkula请Michael Scott从National Semiconductor转职担任Apple Computer的第一任总裁兼CEO,因为他认为两位Steve都不够有经验,自己也不愿意担任此职位。[47][48]\n同月,Wozniak从惠普辞职,全职为Apple工作。[46][49]\n几乎在同一时间,Apple开始销售其第一台电脑时,Wozniak便着手设计一个新的改进版计算机:Apple II。[45] Wozniak在1976年8月完成了新机器的工作原型。[38][50]'}]
IBM成立于1911年,最初名为计算-制表-记录公司(CTR),后于1924年更名为国际商业机器公司(IBM)。
Apple Inc.成立于1976年。
如需更详细的历史,请访问以下链接:
- [IBM历史](https://en.wikipedia.org/wiki/History_of_IBM)
- [Apple历史](https://en.wikipedia.org/wiki/History_of_Apple_Inc.)
> 完成链。
{'input': 'What year was IBM founded and in what year was Apple founded?',
'output': 'IBM成立于1911年,最初名为计算-制表-记录公司(CTR),后于1924年更名为国际商业机器公司(IBM)。\n\nApple Inc.成立于1976年。\n\n如需更详细的历史,请访问以下链接:\n- [IBM历史](https://en.wikipedia.org/wiki/History_of_IBM)\n- [Apple历史](https://en.wikipedia.org/wiki/History_of_Apple_Inc.)'}
以下仅包括代理的输入和输出文本
{'input': 'IBM 是在哪一年成立的,苹果公司又是在哪一年成立的?',
'output': 'IBM 成立于 1911 年,最初名为计算-制表-记录公司(CTR),后于 1924 年更名为 IBM 公司。\n\n苹果则在 1976 年成立。\n\n想要了解更多详细的历史信息,可以参考以下链接:\n- [IBM 历史](https://en.wikipedia.org/wiki/History_of_IBM)\n- [苹果公司历史](https://en.wikipedia.org/wiki/History_of_Apple_Inc.)'}
总之,这段代码的主要功能是使用LangChain框架设置一个基于LLM的代理程序,集成了一个自定义搜索工具,并用它来回答一个特定的问题。
终于 GPT-4o迷你版 考虑因素- 本地控制:开源的SLM提供在本地运行模型并完全控制推理的优势,这是OpenAI的商业托管API模型所不具备的。
- OpenAI 的侧重点:OpenAI 强调速度、成本和能力,并且紧跟更小模型的趋势。
- 竞争对手:像Orca-2、Phi3和TinyLlama这样的高能力开源文本SLM值得特别关注。
- 差异化优势:GPT-4o-mini在成本、速度、能力和多模态支持方面都表现优异。
- 文本和视觉支持:GPT-4o-mini 支持 API 和实验平台中的文本和视觉输入。
- 即将支持的功能:即将推出的功能包括处理文本、图像、视频和音频的输入和输出。
- 大上下文窗口:该模型拥有 128K 个 token 的上下文窗口,其知识更新至 2023 年 10 月。
- 多语言能力:该模型支持多种语言。
- 推理速度的提升:推理速度的提升使其适用于各种应用场景。
- 成本效益:速度快且成本低廉,使其成为代理应用程序中进行多次并行调用的理想选择。每百万输入 token 的费用为 15 美分,每百万输出 token 的费用为 60 美分。
- 微调即将推出:即将提供微调服务。
我目前是Kore AI的首席布道师。我探索和介绍人工智能与语言交汇处的一切,包括大型语言模型、聊天机器人、语音机器人、开发框架、以数据为中心的潜在空间等。
LinkedIn(领英个人主页)
更新的 OpenAI 模型已经经过微调,能够检测何时应调用一个或多个函数,并据此响应调用函数…python.langchain.com](https://python.langchain.com/v0.1/docs/modules/agents/agent_types/openai_tools/?source=post_page-----ce2b7442479b--------------------------------)
共同學習,寫下你的評論
評論加載中...
作者其他優質文章