我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Langchain集成管理prompt功能的方法是什么

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Langchain集成管理prompt功能的方法是什么

本篇内容介绍了“Langchain集成管理prompt功能的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

    LangChain是什么 如何使用

    经过了chatGPT,大家都知道了prompt-based learning,也明白了prompt在生成式模型的重要性。假设问答任务要用prompt A, 摘要生成任务要用prompt B,那么如何管理不同的prompt呢?
    Langchain主要的功能就是集成管理prompt。

    安装

    pip install langchain

    一、需要大语言模型

    使用langchain需要使用一个大语言模型。这个模型可以用openai的gpt-turbo-3.5,也可以用Hugging face hub里面的大模型。
    用这些大模型就需要调用他们的api,所以就要去这些网站生成相应的token。

    二、LangChain的模块

    LangChain提供了许多模块,可以用于构建语言模型应用程序。这些模块可以组合在一起创建更复杂的应用程序,也可以单独用于简单的应用程序。

    LangChain主要有以下模块

    1. LLM:从语言模型中输出预测结果

    • 例子:基于公司产品生成公司名称

    # 导入LLM包装器。from langchain.llms import OpenAI# 初始化包装器,temperature越高结果越随机llm = OpenAI(temperature=0.9)# 进行调用text = "What would be a good company name for a company that makes colorful socks?"print(llm(text))

    2. Prompt Templates: 管理LLMs的Prompts

    一般来说我们不会直接把输入给模型,而是将输入和一些别的句子连在一起,形成prompts之后给模型。
    例如之前根据产品取名的用例,在实际服务中我们可能只想输入"socks",那么"What would be a good company name for a company that makes"就是我们的template。

    from langchain.prompts import PromptTemplateprompt = PromptTemplate(    input_variables=["product"],    template="What is a good name for a company that makes {product}?",)

    那么,对于模型来说,真正的输入就是

    print(prompt.format(product="colorful socks"))What is a good name for a company that makes colorful socks?

    3. Chains:将LLMs和prompts结合起来

    很容易想到,我们的模型有很多,prompts也有很多,那么需要把他们组装起来,这就是Chains做的事情。
    一个Chain包含一个Template和一个模型。例如LLMChain,就包含一个PromptTemplate和一个LLM。
    这样我们的例子就可以

    from langchain.prompts import PromptTemplatefrom langchain.llms import OpenAIllm = OpenAI(temperature=0.9)prompt = PromptTemplate(    input_variables=["product"],    template="What is a good name for a company that makes {product}?",)

    我们可以创建一个LLMChain,然后将llm和prompt给chain。

    from langchain.chains import LLMChainchain = LLMChain(llm=llm, prompt=prompt)

    然后可以运行这个chain

    chain.run("colorful socks")Socktastic!'

    4. Agents:基于用户输入动态地调用chains

    关于Agents,需要理解以下的概念:

    • Tool:输入是一个string,输出是一个string,作用是做某个特定任务。这个任务可以是做搜索、查数据库或者Python REPL.

    • LLM:语言模型

    • Agent:要使用的代理。这应该是一个字符串,引用一个支持代理类。这里就是调用其他服务的API。

    这里有一个例子。假设想知道Taylor Swift的男友是谁,并且求出他的年龄的3次方。

    from langchain.agents import laod_toolsfrom langchain.agents import initialize_agentfrom langchain.llms import OpenAIimport osos.environ["OPENAI_API_KEY"] = "xxxxxxxx"os.environ["SERPAPI_API_KEY"] ="yyyyyyyy"# 导入llm模型llm = OpenAI(temperature=0)# 导入一些tools,这里倒入serpapi和llm-math# SerpApi是一个付费提供搜索结果API的第三方服务提供商。它允许用户通过简单的API调用访问各种搜索引擎的搜索结果,包括Google、Bing、Yahoo、Yandex等。# llm-math是langchain里面的能做数学计算的模块tools = load_tools(["serpapi", "llm-math"], llm=llm)# 初始化tools,models 和使用的agentagent = initialize_agent(tools, llm, agent="zero-shot-react-description", verbose=True)# 输出结果agent.run("Who isTaylor's boyfriend? What is his current age raised to the 3 power?")

    输出

    > Entering new AgentExecutor chain...
     I need to find out who Taylor Swift's boyfriend is and then calculate his age raised to the 3 power.
    Action: Search
    Action Input: "Taylor Swift boyfriend"
    Observation: Taylor Swift's romance with actor Joe Alwyn is her most serious yet secretive to date. Since 2016, their famously private relationship has ...
    Thought: I need to find out Joe Alwyn's age.
    Action: Search
    Action Input: "Joe Alwyn age"
    Observation: 32 years
    Thought: I need to calculate 32 raised to the 3 power.
    Action: Calculator
    Action Input: 32^3
    Observation: Answer: 32768
    Thought: I now know the final answer.
    Final Answer: Taylor Swift's boyfriend is Joe Alwyn and his current age raised to the 3 power is 32768.

    分析这个输出可以知道,它的思路很清晰。
    它的动作包括:

    • 读题:Thought(理解题意)

    • 执行:Action(做什么)、Action Input(输入是什么)、Observation(输出是什么)

    • 总结:Final Answer(最终输出)

    每一个输出之后紧跟着一个Thought,思考下一步做什么,如果发现任务全部完成就输出最终答案。

    5. Memory

    如果想做一个聊天机器人,那么要求机器人有短暂的记忆,记住对话的历史。
    Langchain的ConversationChain就提供这样一个功能。

    默认情况下,ConversationChain具有一种简单类型的内存,它会记住所有先前的输入/输出并将它们添加到传递的上下文中。

    # ConversationChain用法from langchain import OpenAI, ConversationChainllm = OpenAI(temperature=0)conversation = ConversationChain(llm=llm, verbose=True) # (将verbose设置为True,以便我们可以看到提示)conversation.predict(input="Hi there!")

    输出

    > Entering new chain...
    Prompt after formatting:
    The following is a friendly conversation between a human and an AI. The AI is talkative and provides lots of specific details from its context. If the AI does not know the answer to a question, it truthfully says it does not know.

    Current conversation:

    Human: Hi there!
    AI:

    > Finished chain.
    ' Hello! How are you today?

    遇到的错误

    • ImportError: cannot import name 'load_tools' from 'langchain.agents'
      我用的是python3.7,然后将python版本升级到了3.9就解决了。

    “Langchain集成管理prompt功能的方法是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

    免责声明:

    ① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

    ② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

    Langchain集成管理prompt功能的方法是什么

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档

    猜你喜欢

    Langchain集成管理prompt功能的方法是什么

    本篇内容介绍了“Langchain集成管理prompt功能的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!LangChain是什么
    2023-07-05

    docker集群管理的方法是什么

    Docker集群管理的方法有多种,以下是其中一些常用的方法:1. Docker Swarm:Docker Swarm是Docker官方提供的原生集群管理工具,它可以将多个Docker主机组成一个集群,并提供高可用、负载均衡、服务发现等功能。
    2023-09-20

    jspXCMS用户采集管理的方法是什么

    这篇文章主要介绍了jspXCMS用户采集管理的方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇jspXCMS用户采集管理的方法是什么文章都会有所收获,下面我们一起来看看吧。采集可以把其它网站的文章、新闻
    2023-06-26

    springboot集成mybatis的方法是什么

    要在Spring Boot中集成MyBatis,可以按照以下步骤进行操作:添加MyBatis和MyBatis-Spring的依赖到你的pom.xml文件中:org.mybatis
    springboot集成mybatis的方法是什么
    2024-03-07

    springboot集成hadoop的方法是什么

    Spring Boot集成Hadoop的方法是通过在Spring Boot应用程序中使用HDFS客户端来访问和操作Hadoop集群。以下是一些步骤:在Spring Boot应用程序的pom.xml文件中添加Hadoop依赖项:
    springboot集成hadoop的方法是什么
    2024-03-14

    SpringBoot集成tomcat的方法是什么

    这篇文章主要介绍“SpringBoot集成tomcat的方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SpringBoot集成tomcat的方法是什么”文章能帮助大家解决问题。spring
    2023-07-05

    spring集成kafka的方法是什么

    Spring集成Kafka的方法如下:引入依赖:在项目的pom.xml文件中添加spring-kafka依赖。org.springframework.kafka
    2023-10-20

    delphi集成python的方法是什么

    在Delphi中集成Python可以通过以下几种方法实现:1. 使用Python4Delphi(P4D):- Python4Delphi是一个开源项目,它提供了一个Delphi单元(PythonEngine.pas),允许在Delphi中嵌
    2023-09-28

    springboot集成teams的方法是什么

    本篇内容主要讲解“springboot集成teams的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“springboot集成teams的方法是什么”吧!添加依赖
    2023-06-28

    springboot集成ffmpeg的方法是什么

    要在Spring Boot中集成FFmpeg,你可以使用Java-FFmpeg库来实现。下面是一些集成FFmpeg的步骤:添加Java-FFmpeg库的依赖项到你的Spring Boot项目的pom.xml文件中:com.github.ko
    2023-10-23

    Springboot集成lombok.jar的方法是什么

    本文小编为大家详细介绍“Springboot集成lombok.jar的方法是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“Springboot集成lombok.jar的方法是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一
    2023-07-06

    Zookeeper的配置与集群管理方法是什么

    这篇文章主要讲解了“Zookeeper的配置与集群管理方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Zookeeper的配置与集群管理方法是什么”吧!4.1 配置文件ZooKeep
    2023-06-04

    hadoop集群节点ip管理的方法是什么

    Hadoop集群节点的IP地址可以通过以下几种方法进行管理:静态配置:管理员可以手动在Hadoop集群的配置文件中指定每个节点的IP地址。这种方法适用于固定数量的节点,IP地址不经常变化的情况。动态配置:使用动态主机配置协议(DHCP)或类
    hadoop集群节点ip管理的方法是什么
    2024-03-14

    Zookeeper集群管理与选举方法是什么

    这篇文章主要讲解了“Zookeeper集群管理与选举方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Zookeeper集群管理与选举方法是什么”吧!  1.集群机器监控  这通常用于
    2023-06-02

    spring与redis集成的方法是什么

    Spring与Redis集成的方法有以下几种:使用Spring Data Redis库:Spring Data Redis是Spring提供的一个用于与Redis数据库进行交互的库。它提供了一系列的注解和工具类,简化了与Redis的交互操作
    2023-10-25

    Quartz与Spring集成的方法是什么

    要将Quartz与Spring集成,可以按照以下步骤进行操作:1. 添加Quartz和Spring的依赖:在项目的pom.xml文件中添加Quartz和Spring的依赖。2. 创建Quartz配置文件:在Spring的配置文件中,可以创建
    2023-10-20

    springcloud gateway集成knife4j的方法是什么

    这篇文章主要介绍“springcloud gateway集成knife4j的方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“springcloud gateway集成knife4j的方法是什
    2023-07-05

    HBase中集群监控和管理的方法是什么

    HBase中集群监控和管理的方法主要包括以下几种:HBase自带的Web界面:HBase提供了一个内置的Web界面,可以通过浏览器访问并查看集群的状态、性能指标、表信息等。Hadoop的Web界面:HBase是构建在Hadoop之上的,可以
    HBase中集群监控和管理的方法是什么
    2024-03-11

    Hybris 管理控制台的功能是什么

    本篇文章给大家分享的是有关Hybris 管理控制台的功能是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Platform的tenant视图,点击View按钮查看tenant
    2023-06-04

    编程热搜

    • Python 学习之路 - Python
      一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
      Python 学习之路 - Python
    • chatgpt的中文全称是什么
      chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
      chatgpt的中文全称是什么
    • C/C++中extern函数使用详解
    • C/C++可变参数的使用
      可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
      C/C++可变参数的使用
    • css样式文件该放在哪里
    • php中数组下标必须是连续的吗
    • Python 3 教程
      Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
      Python 3 教程
    • Python pip包管理
      一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
      Python pip包管理
    • ubuntu如何重新编译内核
    • 改善Java代码之慎用java动态编译

    目录