【第四章:大模型(LLM)】06.langchain原理-(1)langchain Model使用与实战
LangChain是一个模块化的开源框架,用于简化大语言模型(LLM)的集成与应用开发。其核心特性包括模块化设计、组件可组合性和模型易扩展性,支持OpenAI、HuggingFace等多种模型。框架提供LLM类处理文本生成、ChatModel类管理对话交互,以及Embedding类实现语义处理。通过PromptTemplate动态生成提示词,结合LLMChain实现任务链式调用,并支持多模型协作。
第四章:大模型(LLM)
第六部分:langchain原理
第一节:langchain Model使用与实战
1. LangChain 概述
LangChain 是一个开源框架,旨在简化大语言模型(LLM)在应用中的集成与编排。它的核心目标是:
-
模块化:将 LLM 调用、提示(Prompt)、内存(Memory)、工具(Tools)、链路(Chains)等解耦。
-
可组合:支持将多个组件按需求组装成复杂的应用逻辑。
-
易扩展:可以切换不同的大模型(OpenAI、Hugging Face、Anthropic 等)而无需重构业务代码。
LangChain 的 Model 层主要负责 与大语言模型 API 的交互,包括:
-
LLM 类:与通用文本生成模型交互(如
OpenAI、HuggingFaceHub)。 -
ChatModel 类:与对话式模型交互(如
gpt-3.5-turbo)。 -
Embedding 类:获取向量嵌入,用于语义检索、相似度计算等。
2. Model 使用流程
(1)安装
pip install langchain-openai
pip install langchain-community
(2)初始化 LLM
from langchain_openai import OpenAI
llm = OpenAI(model_name="gpt-3.5-turbo-instruct", temperature=0.7, openai_api_key="你的API密钥")
result = llm("给我写一句鼓励自己的话")
print(result)
这里的
temperature控制生成的随机性,数值越低输出越稳定。
(3)ChatModel 示例
from langchain.chat_models import ChatOpenAI
from langchain.schema import HumanMessage
chat = ChatOpenAI(model_name="gpt-3.5-turbo", temperature=0.5, openai_api_key="你的API密钥")
response = chat([HumanMessage(content="帮我生成一个关于人工智能的三行诗")])
print(response.content)
3. Prompt 与 Model 结合
LangChain 提供了 PromptTemplate 来动态生成提示词:
from langchain.prompts import PromptTemplate
template = "你是一名{role},请用{style}风格解释:{topic}"
prompt = PromptTemplate(input_variables=["role", "style", "topic"], template=template)
print(prompt.format(role="数学老师", style="幽默", topic="微积分的本质"))
配合 LLM:
from langchain.chains import LLMChain
chain = LLMChain(llm=llm, prompt=prompt)
print(chain.run({"role": "物理学家", "style": "生动形象", "topic": "量子叠加"}))
4. 多模型协作
LangChain 可以同时接入多个模型,按需求选择:
from langchain.llms import HuggingFaceHub
hf_llm = HuggingFaceHub(repo_id="google/flan-t5-large", model_kwargs={"temperature":0.3})
可以结合条件逻辑,让不同任务交给最适合的模型执行。
5. 实战案例:问答机器人
from langchain.chains import ConversationChain
from langchain.memory import ConversationBufferMemory
memory = ConversationBufferMemory()
chatbot = ConversationChain(llm=chat, memory=memory)
print(chatbot.run("你好"))
print(chatbot.run("你记得我刚才说了什么吗?"))
说明:
-
ConversationBufferMemory会记录上下文,实现多轮对话记忆。 -
结合数据库或检索系统,就可以做出具备知识库问答能力的应用。
6. 总结
-
Model 层是 LangChain 的基础,负责与 LLM API 交互。
-
结合 PromptTemplate、Chain、Memory 可以快速构建应用。
-
支持多模型接入,方便做模型融合与分工。
-
实战中可与向量数据库(如 FAISS、Pinecone)配合,增强检索与推理能力。
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)