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

LeetCode 用 Rand() 实现 Rand():python 题解

简介

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

环境配置

安装langchain框架

pip install langchain langchain-munity

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

#chatgpt

pip install langchain-openai

#hugging face

pip install langchain-huggingface

#千问

pip install langchain-qwq

1. 让模型跑起来

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

案例

import os

from langchain_munity.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/723156/

相关文章:

  • 零信任时代的数据合规终极指南:Electric SQL实现GDPR与本地化同步的完整解决方案
  • 大模型就业前景火爆?高薪背后隐藏的真相与避坑指南!大模型前景如何?
  • Jina Embedding Server:高性能嵌入模型服务化部署与优化指南
  • 2026斜管填料厂家推荐,深耕过滤器、气浮机量产制造,源头工厂直供,实力智造保障项目落地 - 栗子测评
  • Laravel断言库终极指南:掌握20+测试验证方法的实战技巧
  • 2026靠谱塑料除味剂/橡胶除味剂生产厂家推荐:吸油粉源头工厂直供 - 栗子测评
  • 如何为Runtime Mobile Security (RMS)扩展新功能并贡献到开源社区:完整指南
  • GTAO_Booster_PoC:革命性优化工具如何将GTA Online加载时间减少70%
  • GodSVG元素属性系统详解:掌握每个SVG标签的完整配置
  • 【AI】阿里copaw智能体框架简述
  • json.lua 终极指南:如何在 Lua 中快速实现 JSON 编码与解码
  • Docker GitHub Actions Runner 多环境部署:开发、测试与生产环境配置
  • 2026酸性/酸洗/低铁硅藻土厂家推荐:耐酸水泥/砂浆生产厂家精选指南 - 栗子测评
  • lazygit.nvim性能优化:3个实用技巧减少启动时间和内存占用
  • 江苏旋喷钻机租赁哪家好?2026履带旋喷钻机+双向动力头生产厂家推荐指南 - 栗子测评
  • 上海交通大学等机构开发出能“真正玩游戏“的AI程序员
  • AI伦理与治理:一个被忽视却至关重要的职业发展方向
  • Spring Cloud Gateway 极限调优实录:动态路由 × 精准限流 × 流量染色 × 灰度发布,四位一体构建高可用流量中枢
  • Laravel并行测试:3倍速提升测试效率的终极实战指南
  • hugo-theme-even数学公式与图表支持:从基础语法到高级应用的完整教程
  • 魔百盒CM201-2刷机后还能这么玩?解锁Hi3798MV300盒子的隐藏功能和进阶玩法
  • 2026年q2全国工程电缆主流厂家实力排行一览:北京橡套电缆,消防电缆,环保电缆,电力电缆,电线厂,实力盘点! - 优质品牌商家
  • 如何使用BinNavi调试器:反汇编代码调试的完整实战指南
  • 保姆级教程:用UPF搞定芯片低功耗设计,从电源域划分到状态表实战
  • 如何用Style2Paints实现专业级动漫上色:从草图到成品的完整指南
  • 10个必学的Laravel Artisan命令:提升开发效率的终极自动化工具
  • 终极指南:Electric同步链路加密与认证机制全解析
  • 2026高压旋喷钻机厂家推荐:高压旋喷配件/高压泥浆泵生产厂家实力深度解析 - 栗子测评
  • Winhance中文版:现代化Windows系统优化工具的技术架构与应用实践
  • DeepLake:AI数据管理的瑞士军刀,从原理到实战全解析