0%

langchain简析

简要介绍langchain(其实是一个较为简单的包装)

⚠️ This post is created with the help of an artificial intelligence

Topics

  1. Models

    • LLM:最原本的LLM,就只能完成正常的文本补全任务
    • Chat Models:较常用,经过微调,接受含 system, user, ai 等角色(这个是基座训练时就定好的,langchain提供抽象SystemMessageHumanMessageAIMessage 等)的文本list作为输入。
    • Embedding Models: text→embedding vectors,比如RAG里查询就要用

    注意:API也是有相应类型的,需要接到正确的models上

  2. Prompt Templates

  • 作用:自动化、结构化地构建提示词,将静态文本与动态变量分离。
  • 类型PromptTemplate (用于 LLM) 和 ChatPromptTemplate (用于聊天模型)。
  • 细节参数名和**文档字符串(docstring)**会被模型解析,因此必须清晰、有意义。这个必须特别注意,很多其他库的参数名/函数def下方那段文档是不发挥任何作用的
  1. Chains
  • 作用:将多个模块(如模板、模型)串联成一个自动化工作流。
  • 类型
    • LLMChain:最基础的链,将模板和模型组合,一次性完成提示词生成和模型调用。
    • SequentialChain:按顺序执行多个链,前链输出作为后链输入。
    • RouterChain:根据 LLM 的判断将请求动态路由到不同的子链上,用来搞MOE等。
    • RetrievalQA实现 RAG。可以选chain_type
  1. Agents
  • 最简单的实现就是initialize_agent,然后type选ZERO_SHOT_REACT_DESCRIPTION之类
  • 自定义工具:@tool
  • 注意选较新的,基于agent finetune过的基座,太老的玩不转

此外还有evaluation以及memory等模块,用的时候再慢慢看

欢迎关注我的其它发布渠道