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

SourceGenerator之partial范式及测试鸭

简介

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)佣男置狡

http://www.jsqmd.com/news/620685/

相关文章:

  • 3分钟学会APK-Installer:让Windows电脑直接安装安卓应用的终极方案
  • R 4.5正式版发布72小时内必须掌握的5大基因组分析突破:DESeq2 v1.42+Bioconductor 3.19协同优化全链路
  • 微波管参数全解析:什么是高压供电和聚焦磁场?
  • AI辅助WBS分解:原理、工具、真实项目演示
  • 工程师离职率下降37%的秘密,SITS2026实证数据揭示:AI原生文化如何重构每日站会、PR评审与故障复盘机制
  • 如何快速配置CRT Royale复古效果:5步完整指南
  • 05鲲鹏:华夏之光永存 架构师级·带领鲲鹏走进世界巅峰(5)
  • Cruise纯电动车仿真模型实现电制动优先能量回收策略与灵活模块参数调整说明
  • SITS2026标准落地倒计时:你的FaaS平台还支持“人工调度”吗?——4步完成AI原生迁移评估
  • HagiCode Skill 系统技术解析:如何打造可扩展的 AI 技能管理平台氨
  • 终极指南:如何使用ViGEmBus虚拟手柄驱动解锁Windows游戏兼容性
  • 别再为公式发愁了!用Pandoc+Obsidian导出Word,手把手教你搞定可编辑的数学公式
  • MATLAB实战:基于遗传算法的物流配送路径优化与代码实现
  • 【AI原生研发融合DevOps终极指南】:20年实战验证的7大融合框架与落地避坑清单
  • 三星40亿美元芯片封装厂投资背后:为什么说2026年是半导体软件人才的重要窗口期
  • 开源AI游戏助手BetterGI:如何用计算机视觉技术让原神效率提升300%
  • 2026辽宁镀锌钢格栅板品牌五强榜:安全、耐久、定制化如何选? - 2026年企业推荐榜
  • OBS多平台直播终极指南:免费开源工具实现一键同步推流
  • 品牌伞的“张力”极限:一个品牌最多能覆盖多少个不同品类
  • 51单片机矩阵键盘实战:如何用4x4按键打造简易密码锁(附完整代码)
  • 5分钟搞定Java语音识别:SmartJavaAI整合Whisper和Vosk的实战教程
  • 中科蓝讯-AB5756C-SDK开发-自定义IOS设备16级通话音量
  • 南京旅行避坑!选本地地陪的真实经验分享
  • 。。。。。。
  • 用Arduino UNO和MAX30102做个简易心率监测仪,附完整接线与代码避坑指南
  • 北京有哪些上门回收纪念币的机构?权威科普为您清晰指引 - 品牌排行榜单
  • 告别重复登录!用Playwright连接你已登录的Chrome,5分钟搞定自动化数据采集
  • Windows 11 + CUDA 12.1 保姆级教程:手把手搞定Detectron2环境搭建(含Git加速与权限修改避坑)
  • 告别 Notion AI 付费:利用 Gemini Client 自建最强笔记助手
  • Blazor Server与WASM混合部署安全决策图(2026年GDPR/CCPA/中国等保3.0合规红线对照表)