首页 > 其他分享 >开源模型应用落地-LangChain实用小技巧-ChatPromptTemplate的各种花样(三)

开源模型应用落地-LangChain实用小技巧-ChatPromptTemplate的各种花样(三)

时间:2024-08-03 13:54:28浏览次数:20  
标签:__ ai LangChain ChatPromptTemplate 开源 langchain human import message

一、前言

    在当今的自然语言处理领域,LangChain 框架因其强大的功能和灵活性而备受关注。掌握一些实用的小技巧,能够让您在使用 LangChain 框架时更加得心应手,从而更高效地开发出优质的自然语言处理应用。


二、术语

2.1.LangChain

    是一个全方位的、基于大语言模型这种预测能力的应用开发工具。LangChain的预构建链功能,就像乐高积木一样,无论你是新手还是经验丰富的开发者,都可以选择适合自己的部分快速构建项目。对于希望进行更深入工作的开发者,LangChain 提供的模块化组件则允许你根据自己的需求定制和创建应用中的功能链条。

    LangChain本质上就是对各种大模型提供的API的套壳,是为了方便我们使用这些 API,搭建起来的一些框架、模块和接口。

   LangChain的主要特性:
        1.可以连接多种数据源,比如网页链接、本地PDF文件、向量数据库等
        2.允许语言模型与其环境交互
        3.封装了Model I/O(输入/输出)、Retrieval(检索器)、Memory(记忆)、Agents(决策和调度)等核心组件
        4.可以使用链的方式组装这些组件,以便最好地完成特定用例。
        5.围绕以上设计原则,LangChain解决了现在开发人工智能应用的一些切实痛点。

2.2.ChatPromptTemplate

    是 LangChain 框架中用于创建聊天模型提示的类。


三、前提条件 

3.1. 基础环境

  1.  操作系统:不限

3.2. 安装虚拟环境

conda create --name langchain python=3.10
conda activate langchain
pip install langchain langchain-openai langchain-community

四、技术实现

4.1.ChatPromptTemplate使用示例一

使用SystemMessagePromptTemplate/HumanMessagePromptTemplate/AIMessagePromptTemplate

import os

from langchain.chains.llm import LLMChain
from langchain_core.prompts import ChatPromptTemplate
from langchain_openai import ChatOpenAI

os.environ["OPENAI_API_KEY"] = "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"


if __name__ == '__main__':

    system_message_template = SystemMessagePromptTemplate.from_template("你是一个乐于助人的AI助手")
    human_message_template1 = HumanMessagePromptTemplate.from_template("你好,我叫蜘蛛侠")
    ai_message_template1 = AIMessagePromptTemplate.from_template("很高兴认识你,蜘蛛侠!作为一名人工助理,我会尽我所能为你提供帮助。你有什么需要我协助的吗?")

    human_message_template2 = HumanMessagePromptTemplate.from_template("我住在广州,你呢?")
    ai_message_template2 = AIMessagePromptTemplate.from_template("作为一名人工智能助理,我不居住在任何地方。")

    human_message_template3 = HumanMessagePromptTemplate.from_template("我马上要高考了,我喜欢编程,你能推荐一些大学的对口专业吗?")
    ai_message_template3 = AIMessagePromptTemplate.from_template("对于喜欢编程的学生来说,以下一些大学专业可能会很适合:1.计算机科学和技术,2.软件工程,3.信息安全,4.人工智能")

    human_message_template4 = HumanMessagePromptTemplate.from_template("请问我叫什么名字?")

    chat_prompt = ChatPromptTemplate.from_messages(
        [system_message_template, human_message_template1, ai_message_template1, human_message_template2, ai_message_template2, human_message_template3, ai_message_template3,
         human_message_template4])
    # print(chat_prompt.format_prompt(input="我叫什么?").to_messages())

    llm = ChatOpenAI(model_name='gpt-3.5-turbo-1106', temperature=0.1, max_tokens=512)

    # 创建一个对话链
    chain = LLMChain(
        llm=llm,
        prompt=chat_prompt,
        verbose=True
    )

    print(chain.predict())

调用结果:

4.2.ChatPromptTemplate使用示例二

使用SystemMessage/HumanMessage/AIMessage

import os

from langchain.chains.llm import LLMChain
from langchain_core.messages import SystemMessage, HumanMessage, AIMessage
from langchain_core.prompts import ChatPromptTemplate
from langchain_openai import ChatOpenAI

os.environ["OPENAI_API_KEY"] = "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"


if __name__ == '__main__':


    system_message = SystemMessage("你是一个乐于助人的AI助手")
    human_message1 = HumanMessage("你好,我叫蜘蛛侠")
    ai_message1 = AIMessage("很高兴认识你,蜘蛛侠!作为一名人工助理,我会尽我所能为你提供帮助。你有什么需要我协助的吗?")

    human_message2 = HumanMessage("我住在广州,你呢?")
    ai_message2 = AIMessage("作为一名人工智能助理,我不居住在任何地方。")

    human_message3 = HumanMessage("我马上要高考了,我喜欢编程,你能推荐一些大学的对口专业吗?")
    ai_message3 = AIMessage("对于喜欢编程的学生来说,以下一些大学专业可能会很适合:1.计算机科学和技术,2.软件工程,3.信息安全,4.人工智能")

    human_message4 = HumanMessage("请问我叫什么名字?")

    chat_prompt = ChatPromptTemplate.from_messages([system_message,human_message1,ai_message1,human_message2,ai_message2,human_message3,ai_message3,human_message4])

    llm = ChatOpenAI(model_name='gpt-3.5-turbo-1106', temperature=0.1, max_tokens=512)


    chain = LLMChain(
        llm=llm,
        prompt=chat_prompt,
        verbose=True
    )

    print(chain.predict())

调用结果:

4.3.ChatPromptTemplate使用示例三

import os

from langchain.chains.llm import LLMChain
from langchain_core.prompts import ChatPromptTemplate
from langchain_openai import ChatOpenAI

os.environ["OPENAI_API_KEY"] = "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"


if __name__ == '__main__':

    chat_prompt = ChatPromptTemplate.from_messages(
        [
            ("system", "你是一个乐于助人的AI助手"),
            ("human", "你好,我叫蜘蛛侠"),
            ("ai", "很高兴认识你,蜘蛛侠!作为一名人工助理,我会尽我所能为你提供帮助。你有什么需要我协助的吗?"),
            ("human", "我住在广州,你呢?"),
            ("ai", "作为一名人工智能助理,我不居住在任何地方。"),
            ("human", "我马上要高考了,我喜欢编程,你能推荐一些大学的对口专业吗?"),
            ("ai", "对于喜欢编程的学生来说,以下一些大学专业可能会很适合:1.计算机科学和技术,2.软件工程,3.信息安全,4.人工智能"),
            ("human", "{input}"),
        ]
    )


    llm = ChatOpenAI(model_name='gpt-3.5-turbo-1106', temperature=0.1, max_tokens=512)

    # 创建一个对话链
    chain = LLMChain(
        llm=llm,
        prompt=chat_prompt,
        verbose=True
    )

    print(chain.predict(input="我叫什么?"))

 调用结果:

标签:__,ai,LangChain,ChatPromptTemplate,开源,langchain,human,import,message
From: https://blog.csdn.net/qq839019311/article/details/140776043

相关文章

  • 实用好软-----pc端开源万能下载工具 支持任何视频界面 包括网页抖音等
            很多网友喜欢刷刷视频,对于有些特殊爱好或者教程的视频想保存下来后续观看。但苦于找不到类似工具,今天分享的这款工具可以嗅探当前视频。还可以轻松嗅探并下载网络上的各种宝藏,比如视频、音频、图片、m3u8等等.支持下载各大热门平台的资源,比如微信视频......
  • 使用LangChain访问个人数据第四章-向量数据库与词向量
    需要学习提示词工程的同学请看面向开发者的提示词工程需要学习ChatGPT的同学请查看搭建基于ChatGPT的问答系统需要学习LangChian开发的同学请查看基于LangChain开发应用程序本部分前几个章节请查看使用LangChain访问个人数据第一章-简介使用LangChain访问个人数据第......
  • 利用开源可视化报表工具进入流程化办公!
    很多客户朋友都希望能实现流程化办公,因为只有这样才能帮助企业顺利降本、增效、提质,利用好企业内部数据资源,打破信息孤岛壁垒,实现高效发展。低代码技术平台、开源可视化报表工具优势功能特点多,是提质高效的办公利器。了解行业趋势的朋友们都知道,数字化发展及流程化办公是发展潮流......
  • 2024 年五大最佳构建内部工具的开源项目
    ......
  • GitHub Star 数量前 15 的开源低代码项目
    上周,我们发布了文章《GitHubStar数量前12的开源无代码工具》,收获了许多喜爱。许多朋友留言问,为什么n8n、Appsmith等熟知的产品没有上榜?原因是我们是根据GitHub上的"no-code"标签来制作这份名单的,而这两款产品只打上了“low-code”标签。今天这篇文章,我们将盘点低代码......
  • 重磅!全新开源模型 FLUX.1 媲美 Midjourney
     是由一众大佬成立的 BlackForestLabs 组织推出的全新生图模型系列,在人手、文字、光影和细节上表现的非常不错,在ELO测试上远超SD3-Ultra和Ideogram包括:FLUX.1pro:性能最强,需要申请API使用,可以在 Replicate 和 Fal.ai 上试用FLUX.1dev:开放模型,可以在HF上下载......
  • 使用LangChain访问个人数据第一章-简介
    需要学习提示词工程的同学请看面向开发者的提示词工程需要学习ChatGPT的同学请查看搭建基于ChatGPT的问答系统需要学习LangChian开发的同学请查看基于LangChain开发应用程序正文在大数据时代,数据价值逐渐凸显,打造定制化、个性化服务,个人数据尤为重要。要开发一个具备......
  • Langchain-Chatchat3.1——搜索引擎bing与DuckDuckGo
    Langchain-Chatchat3.1——搜索引擎bing与DuckDuckGo1.前提是咱们的Chatchat服务一起部署好了,可以参考Langchain-Chatchat3.1版本docker部署流程——知识库问答2.搜索引擎DuckDuckGo:该搜索引擎不需要key,但是需要全球上网服务,挂代理。pipinstall-Uduckduckgo_search......
  • Langchain——chatchat3.1版本docker部署流程Langchain-Chatchat
    Langchain——chatchat3.1版本docker部署流程Langchain-Chatchat1.项目地址#项目地址https://github.com/chatchat-space/Langchain-Chatchat#dockerhub地址https://hub.docker.com/r/chatimage/chatchat/tags2.docker部署参考官方文档#官方文档https://github.com/......
  • 转转交易猫自带客服多模板全开源完整定制版源码
    转转交易猫自带客服多模板全开源完整定制版源码。请在后台商品添加成功后,再点击该商品管理,可重新编辑当前商品的所有信息及配图以及支付等等相关信息可点击分享或者跳转,将链接地址进行发布分享请在手机端打开访问访问商品主要模板文件路径目录咸鱼;http://你的域名地址/Xia......