Java 程序员从零开始学 LangChain —模型组件


前面的文章了不起给大家介绍了 langchain 的一些基本知识,没看过的小伙伴可以点击这里去看下,今天了不起给大家介绍一下 langchain 的第一个很重要的组件模型 model。

注意这里说的模型是指 LangChain 的模型组件,而不是指类似于 OpenAI 的语言模型,之所以 LangChain 会出现模型组件就是因为业内的语言模型太多了,除了 OpenAI 这家公司的语言模型之外,还很有很多其他家的。

LangChain 的模型组件有三种类型,分别是 LLM 大语言模型,Chat Model 聊天模型和文本嵌入模型 Text Embedding Models。

LLM 大语言模型

LLM 作为最基本的一种模型组件,输入和输出都只支持字符串,在大部分的场景下就可以满足我们的需求了。我们可以在 Colab([https://colab.research.google.com) 上面直接写 Python 代码

举个栗子

下面是一个 case,先安装依赖,再执行下面的代码。

pip install openaipip install langchain
import os# 配置OpenAI 的 API KEYos.environ["OPENAI_API_KEY"] ="sk-xxx"# 从 LangChain 中导入 OpenAI 的模型from langchain.llms import OpenAI# 三个参数分别代表OpenAI 的模型名称,执行的次数和随机性,数值越大越发散llm = OpenAI(model_name="text-davinci-003", n=2, temperature=0.3)llm.generate(["给我讲一个故事", "给我讲一个笑话"])

运行的结果如下

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

Chat Model 聊天模型

Chat Model 是基于 LLM 模型的,只不过 Chat Model 相对于 LLM 模型组件间输入和输出更加结构化,输入和输出的参数的类型都是 Chat Model,而不是简单的字符串。常用的 Chat Model 类型有如下几种

  1. AIMessage:用来保存 LLM 的响应,以便在下次请求时把这些信息传回给 LLM。
  2. HumanMessage:发送给 LLMs 的提示信息,比如“实现一个快速排序方法”
  3. SystemMessage:设置 LLM 模型的行为方式和目标。你可以在这里给出具体的指示,比如“作为一个代码专家”,或者“返回 json 格式”。
  4. ChatMessage:ChatMessage 可以接收任意形式的值,但是在大多数时间,我们应该使用上面的三种类型。

举个栗子

from langchain.chat_models import ChatOpenAIfrom langchain.schema import (AIMessage,HumanMessage,SystemMessage)chat = ChatOpenAI(temperature=0)messages = [SystemMessage(cnotallow="返回的数据markdown 语法进行展示,代码使用代码块包裹"),HumanMessage(cnotallow="用 Java 实现一个二分查找算法")]print(chat(messages))

生成的内容字符串形式如下

折半查找算法是一种用于在有序数组中查找特定元素的搜索算法,也称为二分查找算法。该算法的时间复杂度为 O(log n)。\n\n以下是 Java 实现二分查找算法的代码:\n\njava\npublic class BinarySearch {\n public static int binarySearch(int[] arr, int target) {\n int left = 0;\n int right = arr.length - 1;\n while (left

将 content 里面的内容提取出来,用 markdown 语法展示出来是这样的

使用这个模型组件,可以进行一些角色的预设,然后来定制个性化的问答。

Prompts template

from langchain.chat_models import ChatOpenAIfrom langchain.prompts import (ChatPromptTemplate,PromptTemplate,SystemMessagePromptTemplate,AIMessagePromptTemplate,HumanMessagePromptTemplate,)from langchain.schema import (AIMessage,HumanMessage,SystemMessage)system_template="你是一个把{input_language}翻译成{output_language}的助手"system_message_prompt = SystemMessagePromptTemplate.from_template(system_template)human_template="{text}"human_message_prompt = HumanMessagePromptTemplate.from_template(human_template)chat_prompt = ChatPromptTemplate.from_messages([system_message_prompt, human_message_prompt])messages = chat_prompt.format_prompt(input_language="英语", output_language="汉语", text="I love programming.")print(messages)chat = ChatOpenAI(temperature=0)print(chat(messages.to_messages()))

output

messages=[SystemMessage(cnotallow='你是一个把英语翻译成汉语的助手', additional_kwargs={}), HumanMessage(cnotallow='I love programming.', additional_kwargs={}, example=False)] cnotallow='我喜欢编程。example=False, additional_kwargs={}

文本嵌入模型 Text Embedding Models

文本嵌入模型组件相对比较难理解,这个组件接收的是一个字符串,返回的是一个浮点数的列表。在 NLP 领域中 Embedding 是一个很常用的技术,Embedding 是将高维特征压缩成低维特征的一种方法,常用于自然语言处理任务中,如文本分类、机器翻译、推荐系统等。它将文本中的离散数据如单词、短语、句子等,映射为实数向量,以更好地进行神经网络处理和学习。通过 Embedding,文本数据可以被更好地表示和理解,提高了模型的表现力和泛化能力。

举个栗子

from langchain.embeddings import OpenAIEmbeddingsembeddings = OpenAIEmbeddings()text = "hello world"query_result = embeddings.embed_query(text)doc_result = embeddings.embed_documents([text])print(query_result)print(doc_result)

output

[-0.01491016335785389, 0.0013780705630779266, -0.018519161269068718, -0.031111136078834534, -0.02430146001279354, 0.007488010451197624,0.011340680532157421, 此处省略 .......

总结

今天给大家介绍了一下 LangChain 的模型组件,有了模型组件我们就可以更加方便的跟各种 LLMs 进行交互了。

参考资料

官方文档:https://python.langchain.com/en/latest/modules/models.html


# 给大家  # 的是  # 是一个  # 你是  # 举个  # 是指  # 英语  # 翻译成  # 给我讲  # 都是 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 网络优化91478 】 【 技术知识72672 】 【 云计算0 】 【 GEO优化84317 】 【 优选文章0 】 【 营销推广36048 】 【 网络运营41350 】 【 案例网站102563 】 【 AI智能45237


相关推荐: 2025年最佳AI时间管理软件:Motion、Reclaim AI与Clockwise终极评测  MediCa AI:AI赋能的智能医疗保健平台全面解析  AI绘图工具测评:告别复杂流程,高效创作流程图  五大AI视频编辑工具:提升视频创作效率和质量  AI赋能科研探索:Google Research创新加速科学发现  EdrawMax全面评测:使用AI轻松绘制流程图和思维导图  百度ai助手悬浮球怎么关 百度ai助手悬浮窗去除方法  AI面试作弊与反作弊:求职者与企业的博弈  律师视角下的生成式AI:信息爆炸时代的法律实践与未来展望  ChatGPT打造AI助手:10倍提升效率,掌控你的生活  免费涨粉秘籍:Instagram快速提升技巧,告别粉丝流失  Guru知识管理平台:AI驱动的企业知识中心构建指南  LTX Studio:AI电影制作平台深度评测与应用指南  探索孟加拉音乐魅力:高尔德普林特莎丽,节日欢歌  AI视频创作终极指南:文本到视频的免费工具与技巧  即梦ai怎样生成插画作品_即梦ai插画生成入口与风格选择【教程】  Power BI: 如何在 Power Query 中更改数据类型  Jasper AI的Recipes是什么 Jasper AI配方功能使用【详解】  AI电子书创作革命:AieBookSuite如何颠覆出版行业  深度解析Coldplay酷玩乐队《Viva la Vida》的音乐内涵  利用 DeepSeek 进行大规模 C++ 代码库审计  夸克AI怎样搜索医疗健康_夸克AI医疗频道与症状自查【技巧】  AI视频生成终极指南:免费为店铺打造引流爆款  AI社交媒体自动化:n8n与HeyGen打造个性化内容引擎  DeepSeek网页版怎么用_DeepSeek网页版使用方法详细指南【教程】  豆包 AI 辅助进行精简版个人周报撰写技巧  DeepSeek解释机器学习模型 DeepSeek数据科学学习指南  教你用AI一键为代码添加注释,小白也能读懂复杂程序  乐高积木重现约拿的故事:圣经故事趣味解读  打造迷人外表:AI技术揭秘面部美学比例与颜值提升  Voice AI:下一代AI语音助手,重塑人机交互  智谱AI智能绘图怎么用_智谱AI智能绘图使用方法详细指南【教程】  ROBLOX Brookhaven:惊悚友谊与校园秘密(2025版)  文心一言辅助进行中文播客脚本起草教程  v0 Report深度测评:AI文档生成器的优缺点分析与实用指南  Google AI Studio:免费AI视频生成器使用指南  通义千问怎样优化提示词更口语化_通义千问口语化技巧【教程】  探索未来:AI机器人AURORA揭秘亚特兰蒂斯之谜  Brevio AI:利用AI代理提升电商营销效果  利用AI自动化回复Google Voice短信:终极指南  AI驱动保险代理:最佳保险 lead generation 公司与服务  P&ID图全解析:工艺流程图解读与应用指南  Amazon Rekognition: 图像与视频分析的强大AI工具  豆包AI怎么关闭消息推送_通知与提醒管理设置教程  智谱AI内容创作怎么用_智谱AI内容创作使用方法详细指南【教程】  ChatGPT助力Instagram Reels脚本创作:提升内容质量  小型邮件列表的终极指南:使用AI最大化营销效果  百度输入法智能预测怎么关 百度输入法ai联想词关闭  DeepSeek分析Excel怎么用_DeepSeek分析Excel使用方法详细指南【教程】  如何用AI帮你制定个人OKR?目标管理从未如此简单 

 2023-06-03

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

南京市珐之弘网络技术有限公司


南京市珐之弘网络技术有限公司

南京市珐之弘网络技术有限公司专注海外推广十年,是谷歌推广.Facebook广告全球合作伙伴,我们精英化的技术团队为企业提供谷歌海外推广+外贸网站建设+网站维护运营+Google SEO优化+社交营销为您提供一站式海外营销服务。

 87067657

 13565296790

 87067657@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.