赞
踩
【2024最全最细Langchain教程-11】Langchain回调模块-CSDN博客
本节课B站视频:【2024最全最细】Langchain教程之Agent(一)_哔哩哔哩_bilibili
有很多教程把Agent称为“代理”,我觉得这个翻译太没意思了,一来和Proxy很容易混淆,二来一点都不酷。
之所以把Agent翻译成智能体,是因为Agent可以(在LLM推理分析的帮助下)可以自己识别、选择和使用工具,这个就是智能体的表现。人之所以能走上进化的道路,一来是发明了语言,二来是学会了使用工具。就这两点来看,把目前的Agent称为智能体一点也不为过。
我们来构造一个简单的Agent,以此了解Agent的原理和基本实现方法:
目录
我们先去Tavily 这个网站进行注册,会给你一个试用账号,然后你要把他给你的那个key配置到系统环境里:
这个API接口每个月有1000次免费的查询机会,我们做研究和学习足够了:
- from langchain_community.tools.tavily_search import TavilySearchResults
-
- search = TavilySearchResults(
- max_results = 1,
- verbose = True,
- )
-
- search.invoke("今天中国A股的表现如何,沪指和深指分别是多少?")
有一个问题好像是我设置的max_result 和 verbose好像没有生效,给我的结果依然是两条查询结果,不知道为啥,verbose也没有生效,我没搞懂。不过没关系,我们先来看一下查询结果:
然后我们来构造一个检索器Retriever:
- import os
-
- from langchain.text_splitter import RecursiveCharacterTextSplitter
- from langchain_community.document_loaders import WebBaseLoader
- from langchain_community.vectorstores import Chroma
- from langchain_openai import OpenAIEmbeddings
-
- loader = WebBaseLoader("https://docs.smith.langchain.com/overview")
-
- docs = loader.load()
- documents = RecursiveCharacterTextSplitter(
- chunk_size=1000, chunk_overlap=200
- ).split_documents(docs)
-
- vector = Chroma.from_documents(
- documents,
- OpenAIEmbeddings(
- openai_api_key = os.getenv("OPENAI_API_KEY"),
- base_url = os.getenv("OPENAI_BASE_URL")
- )
- )
- retriever = vector.as_retriever()
-
- retriever.get_relevant_documents("how to upload a dataset")[0]
这个retriever的作用,和我们之前写的一个案例类似,不熟悉的可以回过头去看看:【2024最全最细Lanchain教程-9】Langchain互联网查询-CSDN博客
这里调用的加载器是 WebBaseLoader,可以在官网API库里找到这个loader的介绍:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/425292
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。