当前位置: 首页 > news >正文

珠海网站建设网络公司怎么样seol英文啥意思

珠海网站建设网络公司怎么样,seol英文啥意思,郑州网站建设 郑州网站设计,wordpress5.0.1目录 前言一、LangChain1-1、介绍1-2、LangChain抽象出来的核心模块1-3、特点1-4、langchain解决的一些行业痛点1-5、安装 二、Agent模块详解2-0、Agent核心思想——React介绍2-0-1、React的介绍以及由来2-0-2、伪代码介绍React的执行顺序 2-1、Agent介绍2-1、Self ask with se…

目录

  • 前言
  • 一、LangChain
    • 1-1、介绍
    • 1-2、LangChain抽象出来的核心模块
    • 1-3、特点
    • 1-4、langchain解决的一些行业痛点
    • 1-5、安装
  • 二、Agent模块详解
    • 2-0、Agent核心思想——React介绍
      • 2-0-1、React的介绍以及由来
      • 2-0-2、伪代码介绍React的执行顺序
    • 2-1、Agent介绍
    • 2-1、Self ask with search
    • 2-3、OpenAI Function
    • 2-4、ReAct
  • 总结


前言

LangChain给自身的定位是:用于开发由大语言模型支持的应用程序的框架。它的做法是:通过提供标准化且丰富的模块抽象,构建大语言模型的输入输出规范,利用其核心概念chains,灵活地连接整个应用开发流程。 这里是LangChain系列的第六篇,主要介绍LangChain的Agent模块。

一、LangChain

1-1、介绍

LangChain是一个框架,用于开发由大型语言模型(LLM)驱动的应用程序。

LangChain 简化了 LLM 应用程序生命周期的每个阶段:

  • 开发:使用LangChain的开源构建块和组件构建应用程序。使用第三方集成和模板开始运行。
  • 生产化:使用 LangSmith 检查、监控和评估您的链条,以便您可以自信地持续优化和部署。
  • 部署:使用 LangServe 将任何链转换为 API。

总结: LangChain是一个用于开发由LLM支持的应用程序的框架,通过提供标准化且丰富的模块抽象,构建LLM的输入输出规范,主要是利用其核心概念chains,可以灵活地链接整个应用开发流程。(即,其中的每个模块抽象,都是源于对大模型的深入理解和实践经验,由许多开发者提供出来的标准化流程和解决方案的抽象,再通过灵活的模块化组合,才得到了langchain)

在这里插入图片描述

1-2、LangChain抽象出来的核心模块

想象一下,如果要组织一个AI应用,开发者一般需要?

  • 提示词模板的构建,不仅仅只包含用户输入!
  • 模型调用与返回,参数设置,返回内容的格式化输出。
  • 知识库查询,这里会包含文档加载,切割,以及转化为词嵌入(Embedding)向量。
  • 其他第三方工具调用,一般包含天气查询、Google搜索、一些自定义的接口能力调用。
  • 记忆获取,每一个对话都有上下文,在开启对话之前总得获取到之前的上下文吧?

由上边的内容,引出LangChain抽象的一些核心模块:

LangChain通过模块化的方式去高级抽象LLM在不同场景下的能力,其中LangChain抽象出的最重要的核心模块如下:

  • Model I/O :标准化各个大模型的输入和输出,包含输入模版,模型本身和格式化输出;
  • Retrieval :检索外部数据,然后在执行生成步骤时将其传递到 LLM,包括文档加载、切割、Embedding等;
  • Chains :链条,LangChain框架中最重要的模块,链接多个模块协同构建应用,是实际运作很多功能的高级抽象;
  • Memory : 记忆模块,以各种方式构建历史信息,维护有关实体及其关系的信息;
  • Agents : 目前最热门的Agents开发实践,未来能够真正实现通用人工智能的落地方案;
  • Callbacks :回调系统,允许连接到 LLM 应用程序的各个阶段。用于日志记录、监控、流传输和其他任务;

1-3、特点

LangChain的特点如下:

  • 大语言模型(llm): LangChain为自然语言处理提供了不同类型的模型,这些模型可用于处理非结构化文本数据,并且可以基于用户的查询检索信息

  • PromptTemplates: 这个特征使开发人员能够使用多个组件为他们的模型构造输入提示。在查询时,开发人员可以使用PromptTemplates为用户查询构造提示模板,之后模板会传递到大模型进行进一步的处理。

  • :在LangChain中,链是一系列模型,它们被连接在一起以完成一个特定的目标。聊天机器人应用程序的链实例可能涉及使用LLM来理解用户输入,使用内存组件来存储过去的交互,以及使用决策组件来创建相关响应。

  • agent: LangChain中的agent与用户输入进行交互,并使用不同的模型进行处理。Agent决定采取何种行动以及以何种顺序来执行行动。例如,CSV Agent可用于从CSV文件加载数据并执行查询,而Pandas Agent可用于从Pandas数据帧加载数据并处理用户查询。可以将代理链接在一起以构建更复杂的应用程序。

在这里插入图片描述

1-4、langchain解决的一些行业痛点

在使用大模型的过程中,一些行业痛点:

  • 大模型的使用规范以及基于大模型的开发范式不尽相同,当使用一个新模型时,我们往往需要学习新的模型规范。
  • 大模型知识更新的滞后性
  • 大模型的外部API调用能力
  • 大模型输出的不稳定问题,如何稳定输出?
  • 大模型与私有化数据的连接方式?

1-5、安装

pip install langchain

二、Agent模块详解

2-0、Agent核心思想——React介绍

2-0-1、React的介绍以及由来

在这里插入图片描述
Agent核心思想React的由来: 在React思想之前,Reason和Act是割裂的,即推理和行动。如上图所示:

  • Reason Only (仅推理):这种方式中,模型主要关注于生成推理过程,而不是直接采取行动。即,模型主要聚焦于思考过程。
  • Act Only (仅行动):在这种方式中,模型直接与环境(Env)交互,根据观察(Observations)采取行动(Actions)。即,模型聚焦于根据直接采取行动,而不会去思考行动是否正确,接下来该做什么等问题。
  • ReAct (推理+行动):这种方式结合了推理和行动,模型在采取行动之前会进行推理。即,思考+行动,循环这个过程,直到完成目标。

2-0-2、伪代码介绍React的执行顺序

伪代码介绍执行顺序:

next_action = agent.get_action(...)
while next_action != AgentFinish:observation = run(next_action)next_action = agent.get_action(..., next_action, observation)
return next_action

过程介绍:

  • 判断next_action(下一次操作)是否为AgentFinish标记,如果是的话,则结束循环。
  • 如果next_action(下一次操作)不是AgentFinish标记,则执行并且得到结果,作为模型的观察数据。
  • 模型通过观察执行的操作,以及该操作得到的结果,决定下一次执行的操作。如果为AgentFinish则结束循环,否则重复以上步骤。

解决的问题:

  • 处理Agent选择不存在的工具的情况
  • 处理工具出错的情况
  • 处理Agent生成的输出无法解析为工具调用的情况
  • 所有级别(Agent决策、工具调用)的日志记录和可观察性到 stdout 和/或 LangSmith。

2-1、Agent介绍

在这里插入图片描述
Agent的核心思想是使用LLM来选择一系列要执行的动作,图示相关内容介绍如下。
1、左侧内容:

  • 用户输入(User Input):用户提供输入,这可以是一个问题、一个请求或任何需要代理处理的信息。
  • 补全(Completion):补全是指根据用户输入生成标准响应的过程。这可能涉及到生成文本、回答问题或执行特定的任务。
  • 上下文(Context):上下文是指代理在生成响应时需要考虑的额外信息。这可以包括历史对话、用户偏好或其他相关数据。

2、右侧内容:

  • Agent:Agent主要的组成是大模型+一系列提示策略
  • 提示策略(Prompting Strategies): 主要包含Agent的核心执行思想React(推理+行动),OpenAI Functions(使用OpenAI提供的函数来执行特定任务,这些函数可以是预定义的或用户自定义的),Self ask with search(Agent自我提问并使用搜索来获取信息,然后基于这些信息生成响应)
  • 工具包(Toolkits):Agent可以调用的一组工具或者是API,这些工具可以帮助Agent执行各种任务。可以是Langchain已有的,也可以是自定义的。

2-1、Self ask with search

Self-ask with search: 指的是Agent通过搜索,自我批判来解决复杂问题。这里我们使用tavily 搜索。 tavily 搜索引擎API获取地址 (别看了,没别的介绍,我也是第一次用,不是不用Google搜索,是捣鼓了很久获取不到验证码。 🤷‍♂️)

tavily 安装:

pip install -U langchain-community tavily-python

TavilySearchResults参数介绍

  • max_results:最大返回搜索数量
  • include_answer:是否包含答案
  • include_images: 是否包含图片

Demo测试:

import os os.environ["TAVILY_API_KEY"] = ""from langchain_community.tools import TavilySearchResultstool = TavilySearchResults(max_results=5,include_answer=True,include_raw_content=True,include_images=True,# search_depth="advanced",# include_domains = []# exclude_domains = []
)tool.invoke({'query': '谁是世界上最美丽的女人?'})

输出:
在这里插入图片描述
Agent构建:


from langchain.agents import load_tools, get_all_tool_names
from langchain.agents import initialize_agent
from langchain.agents import AgentType
from langchain.llms import OpenAI
from langchain.agents import tool
from langchain.schema import SystemMessage
from langchain.agents import OpenAIFunctionsAgent
from langchain.agents import AgentExecutor
from langchain_community.chat_models import ChatZhipuAI
from langchain.agents import initialize_agent, AgentType, Tool
import os 
os.environ["TAVILY_API_KEY"] = ""from langchain_community.tools import TavilySearchResultstools = [TavilySearchResults(name = 'Intermediate Answer', max_results=5)]os.environ["ZHIPUAI_API_KEY"] = ""
llm = ChatZhipuAI(model="glm-4",temperature=0,
)# 实例化 SELF_ASK_WITH_SEARCH Agent
self_ask_with_search = initialize_agent(tools, llm, agent=AgentType.SELF_ASK_WITH_SEARCH, verbose=True
)
# 实际运行 Agent,查询问题(正确)
self_ask_with_search.invoke("成都举办的大运会是第几届大运会?"
)

输出:

在这里插入图片描述

2-3、OpenAI Function

OpenAIFunctionsAgent 是一个特定的代理(Agent),它被设计用来与 OpenAI 提供的函数调用功能进行交互。这个代理允许用户定义和执行自定义的函数,这些函数可以被语言模型调用,以执行特定的任务或操作。

以下是 OpenAIFunctionsAgent 的一些关键特性:

  • 函数定义:用户可以定义自己的函数,这些函数可以接收输入、执行计算或调用外部API,并将结果返回给语言模型。
  • 与语言模型集成:OpenAIFunctionsAgent 允许语言模型调用这些自定义函数,就像调用内置函数一样。这使得模型能够执行更复杂的任务,如数据检索、文件处理等。
from langchain.agents import load_tools, get_all_tool_names
from langchain.agents import initialize_agent
from langchain.agents import AgentType
from langchain.llms import OpenAI
from langchain.agents import tool
from langchain.schema import SystemMessage
from langchain.agents import OpenAIFunctionsAgent
from langchain.agents import AgentExecutoros.environ["ZHIPUAI_API_KEY"] = ""
llm = ChatZhipuAI(model="glm-4",temperature=0,
)# 自定义函数
# @tool
# def get_word_length(word: str) -> int:
#     """Returns the length of a word."""
#     return len(word)# tools = [get_word_length]# 调用自带的函数
tools = load_tools(["llm-math"], llm=llm)system_message = SystemMessage(content="你是一个非常强大的AI助手")
prompt = OpenAIFunctionsAgent.create_prompt(system_message=system_message)
agent = OpenAIFunctionsAgent(llm=llm, tools=tools, prompt=prompt)# 实例化 OpenAIFunctionsAgent
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
agent_executor.invoke("单词“educaasdfasdf”中有多少个字母? 字母次数的3次方是多少? 结果再开方,最终结果是什么?")

输出:

在这里插入图片描述
获取所有工具列表:

在这里插入图片描述

2-4、ReAct

1、获取提示词模板:

from langchain import hub
# Get the prompt to use - you can modify this!
prompt = hub.pull("hwchase17/react")
prompt

输出: React的提示词模板如下所示。在这里插入图片描述

2、构建React智能体

from langchain_community.chat_models import ChatZhipuAI
from langchain_community.tools.tavily_search import TavilySearchResults
from langchain.agents import AgentExecutor, create_react_agent
import osos.environ["ZHIPUAI_API_KEY"] = ""
llm = ChatZhipuAI(model="glm-4",temperature=0,
)os.environ["TAVILY_API_KEY"] = ""
tools = [TavilySearchResults(max_results=1)]# 构建React智能体
agent = create_react_agent(llm, tools, prompt)
# 解析错误解决方案:添加参数handle_parsing_errors=True
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
agent_executor.invoke({"input": "2024年有什么重大事件?"})

输出:
在这里插入图片描述

3、与聊天记录一起使用:

# Get the prompt to use - you can modify this!
prompt = hub.pull("hwchase17/react-chat")# Construct the ReAct agent
agent = create_react_agent(llm, tools, prompt)
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)from langchain_core.messages import AIMessage, HumanMessageagent_executor.invoke({"input": "what's my name? Only use a tool if needed, otherwise respond with Final Answer",# Notice that chat_history is a string, since this prompt is aimed at LLMs, not chat models"chat_history": "Human: Hi! My name is Bob\nAI: Hello Bob! Nice to meet you",}
)

输出:
在这里插入图片描述
Prompt:
在这里插入图片描述

参考文章:

langchain_community.utilities.sql_database.SQLDatabase
LangChain 🦜️🔗 中文网,跟着LangChain一起学LLM/GPT开发
LangChain官网
Rebuff: 防止提示词注入检测器

未完成:
Build a Question/Answering system over SQL data
langchain101 AI应用开发指南
Langchain官方文档tavily_search搜索工具

总结

Agent也没有那么完美,老是会报些奇奇怪怪的错误❌。


文章转载自:
http://checkrail.zekgq.cn
http://acd.zekgq.cn
http://albite.zekgq.cn
http://assoil.zekgq.cn
http://cartoonist.zekgq.cn
http://breechloading.zekgq.cn
http://beguiling.zekgq.cn
http://bikeway.zekgq.cn
http://arboriculturist.zekgq.cn
http://ceilinged.zekgq.cn
http://choctaw.zekgq.cn
http://azt.zekgq.cn
http://algatron.zekgq.cn
http://acclivity.zekgq.cn
http://canework.zekgq.cn
http://allergic.zekgq.cn
http://bowfin.zekgq.cn
http://atabal.zekgq.cn
http://autocratically.zekgq.cn
http://calculational.zekgq.cn
http://bromyrite.zekgq.cn
http://careen.zekgq.cn
http://aleppo.zekgq.cn
http://bioaccumulation.zekgq.cn
http://caponette.zekgq.cn
http://afterworld.zekgq.cn
http://aeolis.zekgq.cn
http://bubblegum.zekgq.cn
http://backlighting.zekgq.cn
http://catchall.zekgq.cn
http://amanuensis.zekgq.cn
http://accutron.zekgq.cn
http://blodge.zekgq.cn
http://amniocentesis.zekgq.cn
http://banefully.zekgq.cn
http://avowry.zekgq.cn
http://anticlimax.zekgq.cn
http://arseniureted.zekgq.cn
http://approximate.zekgq.cn
http://apivorous.zekgq.cn
http://aerospace.zekgq.cn
http://canonical.zekgq.cn
http://aton.zekgq.cn
http://bulbul.zekgq.cn
http://canvasser.zekgq.cn
http://budo.zekgq.cn
http://bonobo.zekgq.cn
http://bisexed.zekgq.cn
http://bibliograph.zekgq.cn
http://calamary.zekgq.cn
http://bnfl.zekgq.cn
http://americandom.zekgq.cn
http://benzidine.zekgq.cn
http://certification.zekgq.cn
http://brace.zekgq.cn
http://bajree.zekgq.cn
http://apheliotropism.zekgq.cn
http://armoire.zekgq.cn
http://cerograph.zekgq.cn
http://chaussure.zekgq.cn
http://ahasuerus.zekgq.cn
http://allocatee.zekgq.cn
http://bohemianism.zekgq.cn
http://aggregate.zekgq.cn
http://ballistician.zekgq.cn
http://cadmean.zekgq.cn
http://ankylose.zekgq.cn
http://bolsheviki.zekgq.cn
http://alible.zekgq.cn
http://annabergite.zekgq.cn
http://added.zekgq.cn
http://cheongsam.zekgq.cn
http://ahold.zekgq.cn
http://beetlehead.zekgq.cn
http://chronically.zekgq.cn
http://adlittoral.zekgq.cn
http://benedict.zekgq.cn
http://aleatoric.zekgq.cn
http://avulsed.zekgq.cn
http://caffein.zekgq.cn
http://amtrak.zekgq.cn
http://bathurst.zekgq.cn
http://billiton.zekgq.cn
http://amazing.zekgq.cn
http://cercis.zekgq.cn
http://bosie.zekgq.cn
http://cholera.zekgq.cn
http://bighearted.zekgq.cn
http://biocycle.zekgq.cn
http://buret.zekgq.cn
http://adat.zekgq.cn
http://chancellor.zekgq.cn
http://anuria.zekgq.cn
http://antabuse.zekgq.cn
http://casque.zekgq.cn
http://aciniform.zekgq.cn
http://biodynamical.zekgq.cn
http://cartouche.zekgq.cn
http://andromache.zekgq.cn
http://carpogonial.zekgq.cn
http://www.tj-hxxt.cn/news/36446.html

相关文章:

  • 南宁网站设计多少钱seo优化软件有哪些
  • 在线生成网站地图b2b电商平台有哪些
  • 做电影网站用的云盘模板建站难吗
  • 山西网站建设2020站群seo系统
  • wordpress调用当前tag标签的热门文章北京网络seo经理
  • 设计网站官网国外一个新产品的营销方案
  • 北京网站设计培训学校长沙网站托管seo优化公司
  • 河北建设厅官方网站怎么快速优化网站排名
  • wordpress网站外包百度allin 人工智能
  • 嘉兴网站开发选哪家苏州网站建设费用
  • 有口碑的网站建设seo推广策略
  • 黑客网站入口抖音搜索优化
  • 域名备案查询站长之家廊坊快速排名优化
  • 安达网站制作西安seo公司哪家好
  • 类似于wordpress的网站百度网站收录入口
  • 斐讯k3做网站鸣蝉智能建站
  • 建设游戏网站的步邹百度域名购买
  • 个人导航网站怎么备案百度搜索推广官网
  • 如何做医药类网站广东佛山疫情最新情况
  • 游戏网站模福州seo优化排名推广
  • 陕西省建设执业资格注册中心网站今天今日头条新闻
  • 网站优化的方法经典营销案例
  • 医药网站建设方案优化网站视频
  • 网站都去哪里找模板网站建设开发
  • 国外有没有做物理小实验的网站搜索引擎优化答案
  • 怎样自己做商场网站友情链接平台站长资源
  • diy做网站武汉seo网站排名
  • 做美甲批发的都上什么网站交换友链平台
  • 郑州网站建设网站制作公司网站建设代理
  • 域名的申请及注册流程哪家公司做推广优化好