news 2026/4/20 3:11:08

[Linux][虚拟串口]x一个特殊的字节低

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
[Linux][虚拟串口]x一个特殊的字节低

简介

langchain专门用于构建LLM大语言模型,其中提供了大量的prompt模板,和组件,通过chain(链)的方式将流程连接起来,操作简单,开发便捷。

环境配置

安装langchain框架

pip install langchain langchain-community

其中langchain可以提供了各种大模型语言库选择,(这里只列举几个)例如:

#chatgpt

pip install langchain-openai

#hugging face

pip install langchain-huggingface

#千问

pip install langchain-qwq

1. 让模型跑起来

如何让你llm跑起来,这里用的是千问,来演示

案例

import os

from langchain_community.chat_models.tongyi import ChatTongyi

from langchain_core.prompts import ChatPromptTemplate

from langchain_core.output_parsers import StrOutputParser

#这里是你的千问apikey

os.environ["DASHSCOPE_API_KEY"] = "apikey"

model = ChatTongyi(model="qwen-plus")

prompt = ChatPromptTemplate.from_messages([

("system", "你是一个精通{topic}的资深技术专家。"),

("user", "请用三句话解释一下什么是{concept}。")

])

output_parser = StrOutputParser()

chain = prompt | model | output_parser

#文本输出

response = chain.invoke({"topic": "Python", "concept": "列表"})

print(response)

#分割

print("="*30)

#流式输出

for chunk in chain.stream({"topic": "人工智能", "concept": "神经网络"}):

print(chunk, end="", flush=True)

代码解释

整个代码的流程如下:

创建模型->构建提示词->构建chain链->使用大模型

创建模型

这一步用不同的模型可能会不同

这里利用langchain的千问库创建模型,可能会不同

model = ChatTongyi(model="qwen-plus")

#例如用chatgpt

llm = init_chat_model("gpt-4o", model_provider="openai")

构建提示词

这一步构建利用了langchain库提供提示词模板:

其中用{}阔起来的在调用时可以动态用字典替换

prompt = ChatPromptTemplate.from_messages([

("system", "你是一个精通{topic}的资深技术专家。"),

("user", "请用三句话解释一下什么是{concept}。")

])

各个角色功能如下:

角色名称 (Role) 对应的类 作用说明

system SystemMessage 系统提示词。用于设定 AI 的“人格”、专业背景、行为准则或约束条件。它通常优先级最高,决定了后续对话的基调。

user HumanMessage 用户消息。代表人类发送的内容。这是模型需要直接回答或处理的问题。

ai AIMessage AI 消息。代表模型之前的回复。在构建多轮对话(带记忆)时,需要把模型之前的回复传回去。

构建chain链

这个是langchain的灵魂,这里简单说明,后面会发更详细的教学文章

chain链的运行流程如下:

将输入填充prompt->将完整prompt喂给LLM->直接解析返回文本

StrOutputParser()这个是langchain提供的文本解析器,用于将上面的结果解析为文本

output_parser = StrOutputParser()

chain = prompt | model | output_parser

使用大模型

这里有两种方式:

直接输出完整的文本

response = chain.invoke({"topic": "Python", "concept": "列表"})

print(response)

流文本输出(打字机)

for chunk in chain.stream({"topic": "人工智能", "concept": "神经网络"}):

print(chunk, end="", flush=True)狙备夹钦

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 10:16:26

SecGPT-14B案例分享:安全设备厂商用SecGPT-14B自动生成产品FAQ知识库

SecGPT-14B案例分享:安全设备厂商用SecGPT-14B自动生成产品FAQ知识库 1. 案例背景与需求 网络安全设备厂商"安盾科技"面临一个典型的企业痛点:随着产品线扩展,客户支持团队每天需要处理大量重复性技术咨询。传统FAQ知识库维护存在…

作者头像 李华
网站建设 2026/4/16 2:15:23

终极指南:中兴光猫配置解密工具完全掌控家庭网络权限

终极指南:中兴光猫配置解密工具完全掌控家庭网络权限 【免费下载链接】ZET-Optical-Network-Terminal-Decoder 项目地址: https://gitcode.com/gh_mirrors/ze/ZET-Optical-Network-Terminal-Decoder 你是否对运营商光猫的封闭管理感到束手无策?想…

作者头像 李华
网站建设 2026/4/17 12:48:31

如何重置Navicat试用期:macOS用户轻松延长数据库工具使用时间

如何重置Navicat试用期:macOS用户轻松延长数据库工具使用时间 【免费下载链接】navicat-premium-reset-trial Reset macOS Navicat Premium 15/16/17 app remaining trial days 项目地址: https://gitcode.com/gh_mirrors/na/navicat-premium-reset-trial Na…

作者头像 李华
网站建设 2026/4/17 21:44:38

深入理解torch.distributed中的异步通信:isend与irecv的正确使用姿势

1. 为什么异步通信需要处理返回值? 在PyTorch的分布式训练中,isend和irecv这对异步通信方法就像两个不靠谱的外卖小哥——如果你不盯着他们完成配送,你的数据可能永远到不了目的地。我第一次使用这两个方法时,就踩过这个坑&#x…

作者头像 李华
网站建设 2026/4/17 14:29:24

stock-sdk-mcp 的实践整理贡

一、什么是urllib3? urllib3 是一个用于处理 HTTP 请求和连接池的强大、用户友好的 Python 库。 它可以帮助你: 发送各种 HTTP 请求(GET, POST, PUT, DELETE等)。 管理连接池,提高网络请求效率。 处理重试和重定向。 支…

作者头像 李华
网站建设 2026/4/17 22:42:51

逆向工程实战:从心理博弈到代码还原——以一道多层混淆赛题为例

1. 逆向工程中的心理博弈战 第一次拿到这道赛题时,我差点就被它唬住了。程序文件re.exe用DIE检测时,显示的结果简直像是个"保护措施全家桶"——UPX、VMProtect、Themida...你能想到的保护工具它都列出来了。但多年的逆向经验告诉我&#xff0c…

作者头像 李华