AI创想

标题: 什么是langchain [打印本页]

作者: 茉雨雾    时间: 2025-9-7 23:36
标题: 什么是langchain
LangChain 是一个用于开发由语言模型驱动的应用程序的框架。他主要拥有 2 个能力:
  1. -可以将 LLM 模型(大规模语言模型)与外部数据源进行连接
  2. -允许与 LLM 模型进行交互
复制代码
支持多种模型接口,比如 OpenAI、Hugging Face、AzureOpenAI …
Fake LLM,用于测试缓存的支持,比如 in-mem(内存)、SQLite、Redis、SQL用量记录
支持流模式(就是一个字一个字的返回,类似打字效果)



3. 核心模块
Langchain有6大核心模块:
Models:模型,是各种类型的模型和模型集成。
Prompts:提示,包括提示管理、提示优化和提示序列化。
Memory:记忆,用来保存和模型交互时的上下文状态。
Indexes:索引,用来结构化文档,以便和模型交互。包括文档加载程序、向量存储器、文本分割器和检索器等。
Agents:代理,决定模型采取哪些行动,执行并且观察流程,直到完成为止。
Chains:链,一系列对各种组件的调用。
2)通过 Splitter 基于 Token 进行文档拆分
3)加载 summarize 链,链类型为 refine,迭代进行总结
  1. from langchain.prompts import PromptTemplate
  2. from langchain.document_loaders import PlaywrightURLLoader
  3. from langchain.chains.summarize import load_summarize_chain
  4. from langchain.text_splitter import RecursiveCharacterTextSplitter
  5. from azure_chat_llm import llm
  6. loader = PlaywrightURLLoader(urls=["https://content.jr.jd.com/article/index.html?pageId=708258989"])
  7. data = loader.load()
  8. text_splitter = RecursiveCharacterTextSplitter.from_tiktoken_encoder(
  9.     model_name="gpt-3.5-turbo",
  10.     allowed_special="all",
  11.     separators=["\n\n","\n","。",","],
  12.     chunk_size=7000,
  13.     chunk_overlap=0)
  14. prompt_template ='''
  15. 作为一个资深编辑,请针对 >>> 和 <<< 中间的文本写一段摘要。
  16. >>>{text}<<<'''
  17. refine_template ='''
  18. 作为一个资深编辑,基于已有的一段摘要:{existing_answer},针对 >>> 和 <<< 中间的文本完善现有的摘要。
  19. >>>{text}<<<'''
  20. PROMPT = PromptTemplate(template=prompt_template, input_variables=["text"])
  21. REFINE_PROMPT = PromptTemplate(
  22.     template=refine_template, input_variables=["existing_answer","text"])
  23. chain = load_summarize_chain(llm, chain_type="refine", question_prompt=PROMPT, refine_prompt=REFINE_PROMPT, verbose=False)
  24. docs = text_splitter.split_documents(data)
  25. result = chain.run(docs)
  26. print(result)
复制代码





欢迎光临 AI创想 (http://llms-ai.com/) Powered by Discuz! X3.4