admin 管理员组文章数量: 1184232
大模型应用开发技术栈
模型服务
开发框架
存储媒介
- 数据存储解决方案,用于保存大量数据供AI系统使用
- 存储解决方案使大模型应用具备记忆能力,能够保存和检索相关信息,实现长期学习和任务连续性
代表性向量数据库:
- 主要形式就是向量数据库,比如Chroma、Pinecone等
- 传统关系型数据库PostgresSQL和pgvector扩展
- 中间件Elastic Search和Redis
两大应用类型
RAG应用
RAG的整体流程
检索增强生成指的就是一种结合检索和生成的自然语言处理技术,主要用于提高LLM在特定任务上的表现,核心环节包含索引的创建和检索的执行
检索的两个环节
1.建立索引的过程
这里将文本转为向量存储到向量数据库中类似于传统的将数据转为数据库(mysql)的过程建立索引的过程【目的都是方便后面在查询时进行查询得到,只不过传统的mysql是通过索引进行查询到某数据,而向量数据库是根据文本相似度去查询得到对应的数据】
2.检索过程
相关术语
索引阶段:
在RAG的索引阶段,文档(Document)首先被输入系统,随后通过文本分割器(TextSplitter)将其分解为更小的片段,这些片段称为文本片段(Segment)。每个片段随后被**嵌入模型(EmbeddingModel)**处理,转换成能够捕捉其语义信息的数值向量,
即嵌入(Embedding)
嵌入向量被存储在**嵌入存储(EmbeddingStore)**中,这是一个专门用于存储和管理向量数据的数据库。文档的语义内容被有效地转换和存储,为检索阶段的高效搜索和生成任务提供了基础
检索阶段
RAG的检索阶段从用户提交的查询(Query)开始。这个查询被输入到系统中,然后利用嵌入模型处理,将查询转换成一个数字向量,称为查询嵌入(Query Embedding)。接下来,系统在嵌入存储中执行相似性搜索,这个嵌入存储包含了之前索引阶段生成并存储的所有文档嵌入向量
通过比较查询嵌入与存储中的嵌入向量,系统能够识别出与查询最相关的文档段,这些文档段被称为相关段(Relevant Segment)。这些相关段随后被提取出来,并注入到提示词中,最终发送给LLM进行处理,以生成响应或完成任务。
Agent
大模型应用集成开发框架
LangChain
LangChain 是一个基于 Python 的开源框架,用于简化使用大型语言模型(LLMs)构建应用的全生命周期,涵盖提示模板、模型封装、链(Chains)、代理(Agents)和记忆(Memory)等模块化组件。它提供了一套统一的接口来管理模型调用、提示拼接与执行流程,使开发者能够快速搭建问答、对话、生成式以及检索增强生成(RAG)等常见场景的应用citeturn0search0turn0search4。
主要功能包括:
- Prompt Templates:管理和渲染各种提示格式;
- LLM Wrappers:对接 OpenAI、Anthropic 等多种商业或开源模型;
- Chains:将多个模型调用或工具调用按顺序或条件组合;
- Agents:结合检索、判断和行动的智能决策流程;
- Memory:在会话中维护上下文或状态,实现多轮对话能力。
LangGraph
LangGraph 是由 LangChain 团队推出的低层次图化编排框架,专注于构建复杂的多角色(multi-actor)智能体系统。它以图(Graph)为核心,支持循环(cycles)、长效记忆与人工干预等特性,适用于需要高度可控性和灵活架构的场景。与 LangChain Agents 相比,LangGraph 更加“贴近金属”,能够精细控制各节点的执行与状态管理citeturn0search1turn0search5。
典型特性包括:
- Graph-based Orchestration:节点代表模型调用、工具或子图,可自定义执行流程;
- State Persistence:支持在节点间持久化任意状态,实现复杂的多阶段任务;
- Human-in-the-Loop:可插入人工审核节点,满足合规或质量把控需求;
- Multi-Agent Coordination:天然支持多智能体协同工作。
LangChain4j
LangChain4j 是 LangChain 思想在 Java 生态中的实现,目标是为 Java 应用提供与 Python 版同样的 LLM 与向量数据库接入能力。它融合了 LangChain、Haystack、LlamaIndex 等社区最佳实践,并在 early-2023 启动,提供统一的 API 对接各大商业及开源模型和向量存储,方便在 Spring、Quarkus 等 Java 平台上快速构建聊天机器人、智能助手及 RAG 应用citeturn0search2turn0search6。
核心特点包括:
- 统一接口:对接 OpenAI、Anthropic、Azure OpenAI、Local LLM 等;
- 向量存储兼容:支持 Pinecone、Weaviate、Redis、Milvus 等;
- 类型安全:利用 Java 强类型优势,提高开发效率与可维护性;
- 社区插件:提供丰富的集成示例与扩展。
LlamaIndex
LlamaIndex(原名 GPT Index)是一个“数据框架”,专注于将企业内外部数据结构化并与 LLM 无缝结合,提供数据连接器、索引构建与高级检索接口。它帮助开发者将文档、数据库、API 等多种数据源转换为 Document/Node(图的相关知识),然后构建向量、树、图等多种索引,以实现高效的上下文检索和增强生成citeturn0search3turn0search7。
主要模块包括:
- Data Connectors:支持 PDF、Word、HTML、SQL、NoSQL、API 等;
- Index Types:List、Tree、Graph、Vector、Composable 等,可根据场景灵活选用;
- Query Engines:提供 RetrievalQA、RetrievalQAWithSources 等多种查询范式;
- 可扩展性:可与 LangChain、Flask、FastAPI、ChatGPT 等框架无缝整合。
主要区别
| 框架 | 语言/生态 | 核心关注 | 编排层级 | 数据处理 |
|---|---|---|---|---|
| LangChain | Python | 链式调用、代理、对话管理 | 链(Chains) | 依赖外部索引 |
| LangGraph | Python (图编排) | 复杂多智能体工作流、图化可控编排 | 图(Graph) | 插件式支持 |
| LangChain4j | Java | Java 应用中 LLM 与向量存储统一接入 | 链+代理 | 同 LangChain |
| LlamaIndex | Python/TypeScript | 数据连接、索引构建、检索增强生成(RAG) | 索引层 | 原生支持 |
总体来看,LangChain 与 LangChain4j 主要面向链式与代理应用的快速开发,LangGraph 在此基础上提供更底层的图化编排能力,而 LlamaIndex 则专注于数据层面的处理和上下文增强检索。 citeturn0search21
大模型部署方案
本地部署:利用Ollma工具
本地部署后可以当作远程api调用即可
基本命令
大模型应用监控方案
分布式链路跟踪和APM系统
链路追踪原理
LangSmith(框架)
隶属于LangChain
Arize Phoenix(框架)
大模型可视化技术
Streamlit
Gradio
其他技术
开放api调用
Flask
集成关系型数据库
版权声明:本文标题:大模型应用开发技术栈 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1765996189a3430585.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论