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

Python 批量导出数据库数据至 Excel 文件页

简介

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/609618/

相关文章:

  • 突破网盘限速困境:开源工具实现高效下载的完整指南
  • 3步实现B站视频批量下载:从重复操作到效率革命
  • 新手必看:在快马平台用qun329完成第一个数据处理项目
  • advance designe system操作记录贴
  • 汇川AM402 PLC控制IS620N伺服:手把手教你封装自己的轴控功能块(附完整工程)
  • NumPy 基础知识
  • 人工智能如何重塑电子档案管理的未来?
  • 新手福音:快马ai生成带详解的vscode初学项目,轻松迈出编程第一步
  • 从VASP数据到LAMMPS模拟:手把手教你用DeePMD-kit搭建材料计算新流程
  • AI Agent Harness Engineering 在供应链管理中的应用:自动补货与物流调度案例
  • 合宙ESP32-C3用PlatformIO调试,别再为USB CDC和DIO配置头疼了
  • Ubuntu18.04下ONNXRuntime C++ API编译避坑指南:从环境配置到成功验证
  • 绿色革新:深圳市聚峰无压烧结银技术引领焊接新趋势
  • 多模态推荐系统中的特征交互融合:从注意力机制到细粒度建模
  • 混合储能系统与光储微网Simulink仿真:下垂控制与2021A以上版本的应用
  • 西门子S7-200 Smart编程软件编写的双级反渗透混床程序及加药系统,一键制水与清洗,无人...
  • 《将就的消耗》‌
  • 避坑指南:Hi3516EV200驱动IRCUT时GPIO上下拉配置的那些坑(以GPIO1_1/1_7为例)
  • 如何让Windows资源管理器原生支持HEIC预览:终极完整指南
  • 全国村域边界数据深度解析—2024最新矢量数据应用指南
  • 5分钟快速上手Blue-Topaz主题:打造你的专属Obsidian蓝色笔记空间
  • 死细胞去除磁珠如何优化细胞实验质量?
  • 彻底告别OpenClaw使用焦虑:我给他装上了“透视眼”和“批量克隆模组褪
  • 从皮肤病到卫星图:手把手迁移你的‘魔改UNet’到遥感图像分割任务
  • vue3 父组件向子组件传参
  • 技术管理者必看:程序员考核的痛点与解决方案
  • 86743
  • DDD难落地?就让AI干吧! - cleanddd-skills介绍乖
  • Windows 环境下汉化版 Burp Suite 的安装与 Java 配置全攻略
  • 3个实战技巧揭秘:如何用GBFR Logs将《碧蓝幻想:Relink》战斗效率提升40%