中文 EN
中等 🌍 地区定价 可靠性: 高

LangChain开发框架完整指南

LangChain是118K+ Stars的AI应用开发框架,提供模块化组件构建复杂LLM应用。本文介绍安装配置和使用教程

4.4 (6,200 条评价)
浏览 85,000 更新于 2024/5/18
LangChain开发框架LLM应用RAG向量数据库Chain

一、LangChain简介

LangChain是一个用于构建LLM应用的开发框架,GitHub 118K+ Stars。提供Chain、Agent、Memory、RAG等模块化组件。

核心模块

  • Chains:链接多个组件处理复杂任务

  • Agents:让LLM自主决策和执行动作

  • Memory:在对话中保持状态

  • RAG:检索增强生成

  • Tools:集成外部工具和服务
  • 二、安装部署

    基本安装

    基本安装


    pip install langchain

    OpenAI集成


    pip install langchain-openai

    所有集成


    pip install langchain[all]

    可选集成

    向量数据库


    pip install langchain-chroma
    pip install langchain-pinecone

    Agent工具


    pip install langchain-community

    其他


    pip install langchain-anthropic
    pip install langchain-deepseek

    三、使用教程

    基本对话

    from langchain_openai import ChatOpenAI

    llm = ChatOpenAI(
    model="gpt-4",
    api_key="sk-xxx"
    )

    response = llm.invoke("Hello, how are you?")
    print(response.content)

    Chain示例

    from langchain_openai import ChatOpenAI
    from langchain.prompts import PromptTemplate
    from langchain.chains import LLMChain

    llm = ChatOpenAI(model="gpt-4")

    prompt = PromptTemplate(
    input_variables=["topic"],
    template="Write a short story about {topic}"
    )

    chain = LLMChain(llm=llm, prompt=prompt)
    result = chain.run("a robot learning to paint")
    print(result)

    RAG示例

    from langchain_openai import OpenAIEmbeddings, ChatOpenAI
    from langchain_chroma import Chroma
    from langchain.text_splitter import RecursiveCharacterTextSplitter
    from langchain.chains import RetrievalQA

    加载文档


    from langchain_community.document_loaders import TextLoader
    loader = TextLoader("document.txt")
    documents = loader.load()

    分割


    splitter = RecursiveCharacterTextSplitter(chunk_size=1000)
    docs = splitter.split_documents(documents)

    向量化


    embeddings = OpenAIEmbeddings()
    vectorstore = Chroma.from_documents(docs, embeddings)

    创建RAG链


    llm = ChatOpenAI(model="gpt-4")
    qa = RetrievalQA.from_chain_type(llm=llm, retriever=vectorstore.as_retriever())

    问答


    result = qa.invoke("What is the document about?")

    四、支付相关

    LangChain免费,但需要配置LLM API:

    API配置

    OpenAI

    import os
    os.environ["OPENAI_API_KEY"] = "sk-xxx"

    DeepSeek(推荐低成本)

    import os
    os.environ["OPENAI_API_KEY"] = "your-deepseek-key"
    os.environ["OPENAI_API_BASE"] = "https://api.deepseek.com/v1"

    from langchain_openai import ChatOpenAI
    llm = ChatOpenAI(
    model="deepseek-chat",
    api_key=os.environ["OPENAI_API_KEY"],
    base_url=os.environ["OPENAI_API_BASE"]
    )

    成本优化

  • 优先使用GPT-3.5或DeepSeek

  • 使用批处理减少API调用

  • 缓存常用查询结果

  • 设置最大token限制
  • 相关工具

    觉得有用?分享给同学!