LLM —— LangChain

发布时间:2026/7/5 1:45:49

LLM —— LangChain 一、什么是LangChainLangChain由 Harrison Chase 创建于2022年10月它是围绕LLMs大语言模型建立的一个框架。 是一个开源编排框架可简化使用大语言模型 (LLM) 构建应用的过程。 它提供用于将LLM 连接到各种数据源的各种工具和组件从而创建复杂的多步工作流。本质上就是把 Prompt、模型、解析器、知识库、工具、Agent 编排到一起的开发框架。参考官网介绍https://python.langchain.com/docs/integrations/text_embedding/huggingfacehub二、LangChain主要组件安装pip install langchain pip install langchain\_community查看当前环境版本号python -m pip show langchain早期框架目前主流LangChain主要支持组件Models / ChatModels调用大模型Prompt Templates管理提示词Output Parsers解析模型输出Chains / Runnable把组件串起来Document Loaders加载文档Text Splitters切分文本Embeddings文本向量化Vector Stores存储和检索向量Retrievers根据问题查资料Tools / Agents工具调用和智能体决策下面已本地 Ollama模型 调用qwen3:8B 举例代码langchain版本 1.2.101.Models模型LangChain 目前支持三种类型的模型LLMS、Chat Models、Embedding Models模型的创建llm OllamaLLM( modelqwen3:8b, base_urlhttp://localhost:11434 )llm ChatOllama( modelqwen3:8b, base_urlhttp://localhost:11434 )embed OllamaEmbeddings( modelmxbai-embed-large, base_urlhttp://localhost:11434 )2.Prompts提示词这里以 PromptTemplate、FewShotPromptTemplate 举例思路① 创建 PromptTemplate ② format(lastname王) 生成提示词 ③ return prompt\_text ④ llm.invoke(prompt\_text) 发给 qwen3:8b ⑤ print(result) 打印模型回答def promptTemplate_demo1(): template 我的邻居姓{lastname}他生了个儿子给他儿子起个名字 prompt PromptTemplate( input_variables[lastname], templatetemplate, ) prompt_text prompt.format(lastname王) # result: 我的邻居姓王他生了个儿子给他儿子起个名字 return prompt_textdef promptTemplate_demo2(): # 案例 examples [ {word: 开心, antonym: 难过}, {word : 高, antonym: 低} ] # 提示词 example_template (单词: {word} 反义词: {antonym}\n\n) example_prompt PromptTemplate( input_variables[word, antonym], templateexample_template, ) few_shot_prompt FewShotPromptTemplate( examples examples, example_prompt example_prompt, prefix 给出每个单词的反义词, suffix 单词:{input}\n反义词:, input_variables [input], example_separator\n\n ) prompt_text few_shot_prompt.format(input粗) return prompt_textif __name__ __main__: prompt_text1 promptTemplate_demo1() # prompt_text2 promptTemplate_demo2() result llm.invoke(prompt_text1) print(result)3.Memory 记忆这里使用from langchain_classic.memory import ConversationBufferMemory流程输入 - 取历史对话 - 对话加入提示词 - 输入提示词- 调用模型 -保存输入模型输出**Indexes**4.Chains链思路就是把步骤串起来 prompt llmllm OllamaLLM( modelqwen3:8b, base_urlhttp://localhost:11434 ) template 我的邻居姓{lastname}他生了个儿子给他儿子起个名字 prompt PromptTemplate( input_variables[lastname], templatetemplate, ) PromptTemplate ↓ 生成完整提示词 ↓ OllamaLLM ↓ 模型生成回答 chain prompt | llm result chain.invoke({ lastname: 林 }) print(result)5. Document (加载文本)from langchain_core.documents import Document# 1 原始文本 docs [ Document(page_contentLangChain 是一个 LLM 应用开发框架。), Document(page_contentLangGraph 更适合构建有状态、多步骤、可循环的 Agent。), ]6.TextSplitters文本切片from langchain_text_splitters import RecursiveCharacterTextSplitter# 2 切片 splitter RecursiveCharacterTextSplitter( chunk_size500, #切片大小 chunk_overlap50 #允许重复数 ) splits splitter.split_documents(docs)7.Embeddings向量化from langchain_ollama import OllamaEmbeddings, ChatOllama# 3 创建向量模型 embed OllamaEmbeddings( modelmxbai-embed-large, base_urlhttp://localhost:11434 )8.VectorStores (存储和检索向量)from langchain_chroma import Chroma# 4 文本 - 向量 - 保存chroma 数据库 vectorstore Chroma.from_documents( documentsdocs, embeddingembed, persist_directory./save_db/chroma_doc_chat_db ) # 5 取回设置topK retriever vectorstore.as_retriever(search_kwargs{k: 3})9.Agent代理10.Tools 工具后续专门写一篇内容比较多三、综合各组件简单案例流程加载文本数据 - 切片 - 向量化 - 保存向量数据库 - 从向量数据库中取TopK -聊天模型 - 提示词 - 链 - 执行。from langchain_ollama import OllamaEmbeddings, ChatOllama from langchain_chroma import Chroma from langchain_text_splitters import RecursiveCharacterTextSplitter from langchain_core.documents import Document from langchain_core.prompts import ChatPromptTemplate from langchain_core.runnables import RunnablePassthrough from langchain_core.output_parsers import StrOutputParser # 1 原始文本 docs [ Document(page_contentLangChain 是一个 LLM 应用开发框架。), Document(page_contentLangGraph 更适合构建有状态、多步骤、可循环的 Agent。), ] # 2 切片 splitter RecursiveCharacterTextSplitter( chunk_size500, #切片大小 chunk_overlap50 #允许重复数 ) splits splitter.split_documents(docs) # 3 创建向量模型 embed OllamaEmbeddings( modelmxbai-embed-large, base_urlhttp://localhost:11434 ) # 4 文本 - 向量 - 保存chroma 数据库 vectorstore Chroma.from_documents( documentsdocs, embeddingembed, persist_directory./save_db/chroma_doc_chat_db ) # 5 取回设置topK retriever vectorstore.as_retriever(search_kwargs{k: 3}) # 6 聊天模型 llm ChatOllama( modelqwen3:8b, base_urlhttp://localhost:11434 ) # 7 聊提示词 prompt ChatPromptTemplate.from_template( 请根据下面的资料回答问题. 资料 {context} 问题: {question} ) def format_docs(docs: list[Document]): return \n\n.join(doc.page_content for doc in docs) rag_chain ( { context: retriever | format_docs, #本身pycharm 可能不太理解 LCEL 管道写法。 question: RunnablePassthrough() } | prompt | llm | StrOutputParser() ) if __name__ __main__: result rag_chain.invoke(LangGraph 适合做什么) text rag_chain.get_prompts() print(result) print(text)学AI大模型的正确顺序千万不要搞错了2026年AI风口已来各行各业的AI渗透肉眼可见超多公司要么转型做AI相关产品要么高薪挖AI技术人才机遇直接摆在眼前有往AI方向发展或者本身有后端编程基础的朋友直接冲AI大模型应用开发转岗超合适就算暂时不打算转岗了解大模型、RAG、Prompt、Agent这些热门概念能上手做简单项目也绝对是求职加分王给大家整理了超全最新的AI大模型应用开发学习清单和资料手把手帮你快速入门学习路线:✅大模型基础认知—大模型核心原理、发展历程、主流模型GPT、文心一言等特点解析✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑✅开发基础能力—Python进阶、API接口调用、大模型开发框架LangChain等实操✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经以上6大模块看似清晰好上手实则每个部分都有扎实的核心内容需要吃透我把大模型的学习全流程已经整理好了抓住AI时代风口轻松解锁职业新可能希望大家都能把握机遇实现薪资/职业跃迁这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

相关新闻