AI大模型企业应用实战-LCEL-LangChain表达式语言

简介: 【8月更文挑战第19天】

一种在langchain之上封装的高级解释语言,简化链条开发,支持真实生产环境而发明。

  • 更好的流式支持
  • 更好的异步支持
  • 优化执行时间
  • 支持重试和反馈
  • 轻松获取中间步骤
  • 输入输出强验证
  • 无缝追踪集成
  • 无缝部署集成

SEO Meta-title: 在Langchain之上封装的高级解释语言:简化链条开发,支持生产环境

Meta-description: 了解如何在Langchain上使用高级解释语言,提升流式支持、异步支持、优化执行时间及支持重试和反馈。

Slug: langchain-advanced-explanation-language

Excerpt: 探索一种在Langchain之上封装的高级解释语言,简化链条开发,提供更好的流式和异步支持,优化执行时间,并支持重试和反馈,完美适用于真实生产环境。

Runnable接口

为了方便自定义链,创造了Runnable协议它适用于大多数组件,是一个标准接口,可以轻松地定义自定义链并以标准方式调用它们。

prompt 核心组件:

  • Prompt+LLM
  • RAG
  • SQL查询
  • Agents
  • Chains
  • 添加记忆
  • 使用工具
  • 道德审查
  • 管理提示词
  • 代码小助手

案例

# 定义llm
class QwenTurboTongyi(Tongyi):
    model_name = "qwen-turbo"
llm = QwenTurboTongyi(
    model_name="qwen-turbo",
    temperature=1,
    streaming=True
)
AI 代码解读
from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import ChatPromptTemplate

prompt = ChatPromptTemplate.from_template("给我讲一个关于 {topic}的笑话")
output_parser = StrOutputParser()

chain = prompt | llm | output_parser

chain.invoke({
   
   "topic": "JavaEdge"})
AI 代码解读

Prompt

prompt_value = prompt.invoke({
   
   "topic": "刺猬"})
prompt_value
AI 代码解读

prompt_value.to_messages()
AI 代码解读

prompt_value.to_string()
AI 代码解读

LCEL的Pipeline

兼容 OpenAI 接口的通义千问

from openai import OpenAI
import os

def get_response():
    client = OpenAI(
        api_key=os.getenv("DASHSCOPE_API_KEY"),
        base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",# DashScope SDK的base_url
    )
    completion = client.chat.completions.create(
        model="qwen-plus",
        messages=[{
   
   'role': 'system', 'content': 'You are a helpful assistant.'},
                  {
   
   'role': 'user', 'content': '你是谁?'}]
    )
    print(completion.model_dump_json())

if __name__ == '__main__':
    get_response()
AI 代码解读

输出:

from langchain_core.prompts import ChatPromptTemplate
from langchain_openai import ChatOpenAI

model = ChatOpenAI(
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
    model="qwen-plus"
)
prompt = ChatPromptTemplate.from_template("给我讲一个关于{topic}的笑话")
chain = prompt | model
AI 代码解读

input schema

# prompt
# 打印输入数据的模式,也就是输入数据应该是什么样的格式
chain.input_schema.schema()
AI 代码解读

# 查看输入数据模式的函数
prompt.input_schema.schema()
AI 代码解读

model.input_schema.schema()
AI 代码解读

Output Schema

# The output schema of the chain is the output schema of its last part, in this case a ChatModel, which outputs a ChatMessage
chain.output_schema.schema()
AI 代码解读

Stream(流式)

类似 chatgpt 的不断输出的体验:

for s in chain.stream({
   
   "topic": "熊"}):
    print(s.content, end="", flush=True)
AI 代码解读

Invoke

就需要全部运行完才输出,给人感觉就很慢:

Batch

chain.batch([{
   
   "topic": "熊"}, {
   
   "topic": "猫"}])
AI 代码解读

# max_concurrency控制并发数
chain.batch([{
   
   "topic": "熊"}, {
   
   "topic": "猫"}, {
   
   "topic": "狗"}], config={
   
   "max_concurrency": 5})
AI 代码解读

Async Stream 异步

async for s in chain.astream({
   
   "topic": "女人"}):
    print(s.content, end="", flush=True)
AI 代码解读

await chain.ainvoke({
   
   "topic": "男人"})
AI 代码解读

Async Batch

await chain.abatch([{
   
   "topic": "熊"},{
   
   "topic": "女人"}])
AI 代码解读

异步获取中间步骤(只支持 OpenAI的 key)

并行支持

from langchain_core.runnables import RunnableParallel

chain1 = ChatPromptTemplate.from_template("给我讲一个关于{topic}的笑话") | model
chain2 = (
    ChatPromptTemplate.from_template("写两行关于{topic}的诗歌")
    | model
)
combined = RunnableParallel(joke=chain1, poem=chain2)
AI 代码解读
%%time
chain1.invoke({
   
   "topic": "熊"})
AI 代码解读

并行执行

%%time
combined.invoke({
   
   "topic": "熊"})
AI 代码解读

并行批处理,适用于大量生成

%%time
chain1.batch([{
   
   "topic": "熊"}, {
   
   "topic": "猫"}])
AI 代码解读

并行执行

%%time
combined.batch([{
   
   "topic": "熊"}, {
   
   "topic": "猫"}])
AI 代码解读

参考:

https://github.com/devinyf/langchain_qianwen

https://python.langchain.com/v0.2/docs/integrations/llms/tongyi/

相关实践学习
阿里云百炼xAnalyticDB PostgreSQL构建AIGC应用
通过该实验体验在阿里云百炼中构建企业专属知识库构建及应用全流程。同时体验使用ADB-PG向量检索引擎提供专属安全存储,保障企业数据隐私安全。
AnalyticDB PostgreSQL 企业智能数据中台:一站式管理数据服务资产
企业在数据仓库之上可构建丰富的数据服务用以支持数据应用及业务场景;ADB PG推出全新企业智能数据平台,用以帮助用户一站式的管理企业数据服务资产,包括创建, 管理,探索, 监控等; 助力企业在现有平台之上快速构建起数据服务资产体系
目录
打赏
0
2
2
0
1951
分享
相关文章
基于合合信息开源智能终端工具—Chaterm的实战指南【当运维遇上AI,一场效率革命正在发生】
在云计算和多平台运维日益复杂的今天,传统命令行工具正面临前所未有的挑战。工程师不仅要记忆成百上千条操作命令,还需在不同平台之间切换终端、脚本、权限和语法,操作效率与安全性常常难以兼顾。尤其在多云环境、远程办公、跨部门协作频繁的背景下,这些“低效、碎片化、易出错”的传统运维方式,已经严重阻碍了 IT 团队的创新能力和响应速度。 而就在这时,一款由合合信息推出的新型智能终端工具——Chaterm,正在悄然颠覆这一现状。它不仅是一款跨平台终端工具,更是业内率先引入 AI Agent 能力 的“会思考”的云资源管理助手。
74 6
通义大模型与现有企业系统集成实战《CRM案例分析与安全最佳实践》
本文档详细介绍了基于通义大模型的CRM系统集成架构设计与优化实践。涵盖混合部署架构演进(新增向量缓存、双通道同步)、性能基准测试对比、客户意图分析模块、商机预测系统等核心功能实现。同时,深入探讨了安全防护体系、三级缓存架构、请求批处理优化及故障处理机制,并展示了实时客户画像生成和动态提示词工程。通过实施,显著提升客服响应速度(425%)、商机识别准确率(37%)及客户满意度(15%)。最后,规划了技术演进路线图,从单点集成迈向自主优化阶段,推动业务效率与价值持续增长。
JBoltAI 框架完整实操案例 在 Java 生态中快速构建大模型应用全流程实战指南
本案例基于JBoltAI框架,展示如何快速构建Java生态中的大模型应用——智能客服系统。系统面向电商平台,具备自动回答常见问题、意图识别、多轮对话理解及复杂问题转接人工等功能。采用Spring Boot+JBoltAI架构,集成向量数据库与大模型(如文心一言或通义千问)。内容涵盖需求分析、环境搭建、代码实现(知识库管理、核心服务、REST API)、前端界面开发及部署测试全流程,助你高效掌握大模型应用开发。
112 5
基于通义大模型的智能客服系统构建实战:从模型微调到API部署
本文详细解析了基于通义大模型的智能客服系统构建全流程,涵盖数据准备、模型微调、性能优化及API部署等关键环节。通过实战案例与代码演示,展示了如何针对客服场景优化训练数据、高效微调大模型、解决部署中的延迟与并发问题,以及构建完整的API服务与监控体系。文章还探讨了性能优化进阶技术,如模型量化压缩和缓存策略,并提供了安全与合规实践建议。最终总结显示,微调后模型意图识别准确率提升14.3%,QPS从12.3提升至86.7,延迟降低74%。
192 13
智能体(AI Agent)开发实战之【LangChain】(二)结合大模型基于RAG实现本地知识库问答
智能体(AI Agent)开发实战之【LangChain】(二)结合大模型基于RAG实现本地知识库问答
魔塔社区-微调Qwen3-1.7B大模型实战
这是一篇关于模型微调实战的教程,主要步骤如下:1. 使用魔塔社区提供的GPU环境;2. 处理 delicate_medical_r1_data 数据集生成训练和验证文件;3. 加载Modelscope上的Qwen3-1.7B模型;4. 注册并使用Swanlab工具配置API;5. 按顺序执行完整代码完成微调设置;6. 展示训练过程。完整代码与实验记录分别托管于魔塔社区和SwanLab平台,方便复现与学习。
250 1
Java 生态大模型应用开发全流程实战案例与技术路径终极对决
在Java生态中开发大模型应用,Spring AI、LangChain4j和JBoltAI是三大主流框架。本文从架构设计、核心功能、开发体验、性能扩展性、生态社区等维度对比三者特点,并结合实例分析选型建议。Spring AI适合已有Spring技术栈团队,LangChain4j灵活性强适用于学术研究,JBoltAI提供开箱即用的企业级解决方案,助力传统系统快速AI化改造。开发者可根据业务场景和技术背景选择最适合的框架。
108 2
Kaggle金牌方案复现:CGO-Transformer-GRU多模态融合预测实战
本文详细介绍了在2023年Kaggle "Global Multimodal Demand Forecasting Challenge"中夺冠的**CGO-Transformer-GRU**方案。该方案通过融合协方差引导优化(CGO)、注意力机制和时序建模技术,解决了多模态数据预测中的核心挑战,包括异构数据对齐、模态动态变化及长短期依赖建模。方案创新性地提出了动态门控机制、混合架构和梯度平衡算法,并在公开数据集TMU-MDFD上取得了RMSE 7.83的优异成绩,领先亚军12.6%。
2025年颠覆闭源大模型?MonkeyOCR:这款开源AI文档解析模型,精度更高,速度更快!
还在依赖昂贵且慢的闭源OCR工具?华中科技大学开源的MonkeyOCR文档解析模型,以其超越GPT4o的精度和更快的推理速度,在单机单卡(3090)上即可部署,正颠覆业界认知。本文将深入解析其设计哲学、核心突破——大规模自建数据集,并分享实测体验与避坑指南。
327 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问