LangChain - 构建 AI 应用的强大框架

一、什么是 LangChain?

LangChain 是一个用于开发基于大语言模型(LLM)应用程序的框架,它提供了一系列工具和抽象,让开发者能够更容易地构建复杂的 AI 应用。

二、核心概念

1. 基础组件

从示例代码中我们可以看到几个重要的基础组件:

1. 环境配置

js 复制代码
import os
os.environ["OPENAI_API_KEY"] = "your-api-key"
os.environ["OPENAI_BASE_URL"] = "your-base-url"

2. 聊天模型

js 复制代码
from langchain_openai import ChatOpenAI
chat = ChatOpenAI(
    model="gpt-3.5-turbo",
    temperature=0.8,
    max_tokens=60    
)

3. 基础LLM

js 复制代码
from langchain_openai import OpenAI
llm = OpenAI(model_name="gpt-3.5-turbo-instruct")

2. 消息类型

LangChain 支持多种消息类型:

js 复制代码
from langchain.schema import (
    SystemMessage,  # 系统消息
    HumanMessage    # 用户消息
)
messages = [
    SystemMessage(content="你是一个很棒的风水师"),
    HumanMessage(content="请给我的花店起个名")
]

3. 模板系统

LangChain 提供了强大的模板系统:

js 复制代码
from langchain.prompts import PromptTemplate
template = """你是一位专业的鲜花店的文案撰写员。
对于售价为{price} 元的{flower_name},你能提供一个吸引人的简短描述吗?
"""
prompt = PromptTemplate.from_template(template)
input = prompt.format(flower_name="玫瑰",price="99")

三、实际应用示例

1. 简单对话

js 复制代码
chat = ChatOpenAI(    model="gpt-3.5-turbo",   
temperature=0.8,    
max_tokens=60    
)

messages = [    SystemMessage(content="你是一个很棒的风水师"),
HumanMessage(content="请给我的花店起个名")]

response = chat(messages)
print(response.content)

2. 模板化文案生成

js 复制代码
template = """你是一位专业的鲜花店的文案撰写员。
对于售价为{price} 元的{flower_name},你能提供一个吸引人的简短描述吗?
"""

prompt = PromptTemplate.from_template(template)

input = prompt.format(flower_name="玫瑰",price="99")

model = OpenAI(model_name="gpt-3.5-turbo-instruct")output = model.invoke(input)

2. 格式化输出格式

js 复制代码
# 格式化输出
from langchain.output_parsers import StructuredOutputParser, ResponseSchema

response_schemas = [
    ResponseSchema(name="description",description="鲜花的描述文案"),
    ResponseSchema(name="reason",description="为什么要这样写这个文案"),
]

output_parser = StructuredOutputParser.from_response_schemas(response_schemas)
print(output_parser)

format_instruction = output_parser.get_format_instructions()
print(format_instruction)

output = PromptTemplate.from_template(template,
partial_variables={"format_instruction":format_instructions})

input = prompt.format_prompt(
    flower_name="玫瑰",
    price="99",
    format_instruction=format_instruction
)
print(input)

output = model.invoke(input)
print(output)
相关推荐
青山如墨雨如画2 小时前
【Claude】Win11系统VSCode下的Claude使用方法
vscode·aigc·claude·vibe coding·authropic
青山如墨雨如画2 小时前
【Claude】Win11电脑下VSCode环境中Claude+Deepseek的报错及解决方法记录日志
vscode·aigc·claude·authropic
SEO_juper3 小时前
JavaScript 渲染:AI 智能体无法读取,直接影响收录
开发语言·前端·javascript·aigc·seo·跨境电商·geo
captain_AIouo3 小时前
攻克行业技术痛点,GPT Image2重塑电商AI生图标准
大数据·人工智能·经验分享·gpt·aigc
K姐研究社4 小时前
LibTV团队版实测 – 多人协作重构 AI 视频生产模式
人工智能·aigc·音视频
陆业聪4 小时前
WebView与原生JS交互:JSBridge设计模式与安全实践
人工智能·aigc
武雄(小星Ai)15 小时前
2026年AI Agent框架选型指南:LangGraph vs CrewAI vs Claude SDK vs OpenAI SDK
人工智能·aigc·agent
百珏18 小时前
个人理解的AI Code Review 架构的三代演进
架构·aigc·ai编程
三无推导18 小时前
ComfyUI 安装部署教程:Windows 下快速搭建可视化 AI 绘图工作流,零基础也能跑通
人工智能·pytorch·windows·stable diffusion·aigc·ai绘画·持续部署
captain_AIouo19 小时前
全域电商流量竞争白热化,autoAGC AI助商家破局增收
大数据·人工智能·经验分享·aigc