框架 | 描述 |
LangChain (Python) | 出现最早、最成熟的,适合复杂任务分解和单Agent应用 |
LlamaIndex (Python) | 专注于高效的索引和检索,适合 RAG 场景 |
LangChain4J (Java) | LangChain出了Java、JavaScript(LangChain.js)两个语言的版本,LangChain4j的功能略少于LangChain,但是主要的核心功能都是有的 |
SpringAI/SpringAI Alibaba (Java) | 有待进一步成熟,只是简单的对于一些接口进行了封装 |
SemanticKernel (C#) | 微软推出的,对于C#同学来说,那就是5颗星 |
项目场景 | 技术点 |
文档问答助手 | Prompt + Embedding + RetrievalQA |
智能日程规划助手 | Agent + Tool + Memory |
LLM+数据库问答 | SQLDatabaseToolkit + Agent |
多模型路由对话系统 | RouterChain + 多 LLM |
互联网智能客服 | ConversationChain + RAG +Agent |
企业知识库助手(RAG + 本地模型) | VectorDB + LLM + Streamlit |
包 | 描述 |
langchain | 包含构建使用 LLM 的应用所需的所有实现的主入口点 |
langchain-core | LangChain 生态系统中的核心接口和抽象 |
langchain-text-splitters | 用于文档处理的文本分割工具 |
langchain-mcp-adapters | 在 LangChain 和 LangGraph 应用中提供 MCP 工具 |
langchain-tests | 用于验证 LangChain 集成包实现的标准化测试套件 |
langchain-classic | 遗留的 angchain 实现和组件 |
参数 | 说明 |
model | 模型名称或标识符 |
base_url | 发送请求的 API 端点的 URL。常由模型的提供商提供 |
api_key | 与模型提供商进行身份验证所需的 API 密钥 |
temperature | 控制模型输出的随机性。数字越高,回答越有创意;数字越低,回答越确定 |
timeout | 在取消请求之前,等待模型响应的最大时间(以秒为单位) |
max_tokens | 限制响应中的总tokens 数量,控制输出长度 |
max_retries | 请求失败时系统尝试重新发送请求的最大次数 |
消息类型 | 描述 |
SystemMessage | 代表一组初始指令,用于引导模型的行为。可以使用系统消息来设定语气、定义模型的角色,并建立响应的指导方针 |
HumanMessage | 表示用户输入 |
AIMessage | 模型生成的响应,包括文本内容、工具调用和元数据 |
ToolMessage | 表示工具调用的输出 |
invoke / ainvoke | 将单个输入转换为输出 |
batch / abatch | 批量将多个输入转换为输出 |
stream / astream | 从单个输入生成流式输出 |
参数 | |
template | 提示模板,包括变量占位符 |
input_variables | 需要将其值作为提示输入的变量名称列表 |
partial_variables | 提示模板携带的部分变量的字典。使用部分变量预先填充模板,无需后续在每次调用时再传递这些变量 |
方法 | |
format() | 使用输入格式化提示 |
模型 | 机构 | 描述 |
bge-large-zh | 北京智源研究院(BAAI) | 开源,向量维度1024,序列长度512 |
bge-base-zh | BAAI | 开源,向量维度768,序列长度512 |
bge-small-zh | BAAI | 开源,向量维度512,序列长度512 |
bge-m3 | BAAI | 开源,多语言,向量维度1024,序列长度8192 |
text-embedding-3-small | OpenAI | 多语言,向量维度1536,序列长度8192 |
text-embedding-3-large | OpenAI | 多语言,向量维度3072,序列长度8192 |
向量数据库 | 描述 |
FAISS | 一个用于高效相似性搜索和密集向量聚类的库 |
Chroma | 开源的轻量级向量数据库,有极简的 API |
Milvus | 开源的专为向量搜索设计的云原生数据库。性能强悍,功能丰富。覆盖轻量级的原型开发到十亿级向量的大规模生产系统 |
Pgvector | 开源关系型数据库 PostgreSQL 的扩展,为PostgreSQL增加了向量数据类型和相似性搜索功能 |
Redis | 开源内存数据结构存储,现已原生支持向量相似性搜索功能 |
Elasticsearch | 开源分布式搜索和分析引擎,提供了一个基于文档的数据库,结构化、非结构化和向量数据通过高效的列式存储统一管理 |
字段类型 | 字段 | 描述 | |
向量字段 | 密集向量 | FLOAT_VECTOR | 32位浮点数列表 |
FLOAT16_VECTOR | 16位半精度浮点数列表 | ||
BFLOAT16_VECTOR | 16位浮点数列表,精度稍低,但指数范围与 Float32 相同 | ||
INT8_VECTOR | 8位有符号整数向量 | ||
稀疏向量 | SPARSE_FLOAT_VECTOR | 非零数字及其序列号列表 | |
二进制向量 | BINARY_VECTOR | 一个0和1的列表 | |
标量字段 | VARCHAR | 字符串 | |
BOOL | 存储true或false | ||
INT | INT8、INT16、INT32、INT64 | ||
FLOAT | 32位浮点数 | ||
DOUBLE | 64位双精度浮点数 | ||
ARRAY | 相同数据类型元素的有序集合 | ||
JSON | 结构化的键值数据 | ||
MCP 主机 | 协调和管理一个或多个 MCP 客户端的 AI 应用 |
MCP 客户端 | 一个保持与 MCP 服务器连接的组件,通过 MCP 定义的消息处理通信,从服务器查找并请求资源和工具,并管理与服务器的连接生命周期 |
MCP 服务器 | 一个向 MCP 客户端提供服务的程序,通过协议暴露工具、资源和提示模板功能 |
Stdio | 使用标准输入和输出流,与在终端输入命令并看到响应时使用的机制相同。适用于本地开发 |
Streamable HTTP | 该传输使用 HTTP POST 和 GET 请求,服务器可以选择使用SSE来流式传输多个服务器消息。支持流式传输和服务器到客户端通知,并支持标准 HTTP 身份验证方法,包括授权令牌、API 密钥和自定义头信息 |
SSE | 带有 SSE(Server-Sent Events 服务器发送事件)的 HTTP,MCP早期传输机制,现逐渐被 Streamable HTTP 取代 |
协议版本协商 | 确保客户端和服务器使用兼容的协议版本,避免因版本不一致导致的通信问题 |
能力发现 | 声明各自支持的功能,包括他们能够处理的基元类型(工具、资源、提示)以及是否支持通知等特性 |
身份交换 | 交换客户端与服务器的身份及版本信息,便于后续的调试与兼容性管理 |
name | 工具标识符 |
title | 工具的易读显示名称 |
description | 工具描述 |
inputSchema | 一个定义预期输入参数的 JSON Schema,支持类型验证并提供关于必需和可选参数的清晰文档 |
name | 工具标识符 |
arguments | 包含工具的 inputSchema 定义的输入参数 |
| 欢迎光临 AI创想 (https://llms-ai.com/) | Powered by Discuz! X3.4 |