Langchain--如何使用大模型 2.0

Langchain--如何使用大模型 2.0_第1张图片


【易编橙·终身成长社群】

大家好,我是小森( ﹡ˆoˆ﹡ ) ! 易编橙·终身成长社群创始团队嘉宾,橙似锦计划领衔成员、阿里云专家博主、腾讯云内容共创官、CSDN人工智能领域优质创作者 。  

Langchain使用大模型 

我们除了可以使用Langchain进行模型对话、提示词创作、嵌入模型,还可以使用其他的组件对大模型封装使用,打造我们自己的大模型。

Agents

首先,我们来谈谈Agents。在Langchain,Agents是执行特定任务或功能的智能实体。它们可以被看作是自动化的小助手,能够根据预设的规则和逻辑,在Langchain生态系统中自主地执行操作。比如,有的Agent负责监控区块链上的交易活动,有的则负责处理语言任务,如文本生成、翻译或情感分析等。这些Agent的存在,极大地提高了Langchain系统的自动化程度和效率。

AI大模型虽然很强大,但是还有一些局限性,比如:

  • 数据不及时:ChatGPT数据更新到2022年底,也就是说今年的新闻它是不知道的。
  • 处理复杂任务:大模型虽然在问答方面很出色,但是不能直接处理复杂任务。
  • 大模型的核心能力是理解意图和文本生成。

我们在使用Langchain的时候,可以通过pycharm的某个函数,Ctrl + b 查看提供的参数,也可以去Langchain官网查看提供的各种API,如我们之前使用的baiduqianfan:

Langchain--如何使用大模型 2.0_第2张图片可以看到LLMs是我们的LLMs模块,BaiduQianfan是其中的库。

Langchain--如何使用大模型 2.0_第3张图片 

其中:ERNIE-Bot-turbo是默认的模型(文心一言 ),也可以使用其他的模型,比如:Qianfan-Chinese-Llama-2-7B,是通过Llama微调的中文大模型。

我们先假设,想要查询山东省2023年高考人数有多少,我们可以使用多个代理工具,让Agents选择执行。

pip install duckduckgo-search
  • 集成DuckDuckGo搜索引擎的功能,可以去浏览器搜索并集成信息。
import os
from langchain_community.chat_models import QianfanChatEndpoint
from langchain.agents import load_tools
from langchain.agents import initialize_agent
from langchain.agents import AgentType

os.environ['QIANFAN_AK'] = "******"
os.environ['QIANFAN_SK'] = "******"

llm = QianfanChatEndpoint(model='Chinese-Llama-2-7B')

tools = load_tools(["ddg-search", "llm-math"], llm=llm)

agent = initialize_agent(tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True)
# verbose=True参数是在执行任务时打印更多的调试信息。
print('agent', agent)

from langchain import PromptTemplate
prompt_template = "山东省2023年高考人数是多少"
prompt = PromptTemplate.from_template(prompt_template)
# 创建了一个提示模板,并将其转换为PromptTemplate对象。
print('prompt-->', prompt)


agent.run(prompt)

输出:

agent verbose=True tags=['zero-shot-react-description'] agent=ZeroShotAgent(llm_chain=LLMChain(prompt=PromptTemplate(input_variables=['agent_scratchpad', 'input'], template='Answer the following questions as best you can. You have access to the following tools:\n\nduckduckgo_search - A wrapper around DuckDuckGo Search. Useful for when you need to answer questions about current events. Input should be a search query.\nCalculator(*args: Any, callbacks: Union[List[langchain_core.callbacks.base.BaseCallbackHandler], langchain_core.callbacks.base.BaseCallbackManager, NoneType] = None, ta

你可能感兴趣的:(Langchain--如何使用大模型 2.0)