@crvouga/ mockingbird-service-lamacloud (中文(简体) )
本地模拟器。 真正的API合同. 部分 嘲笑鸟。 。 。 .
国家模拟器 拉玛克卢德 用于测试套件的平台 API(LlamaIndex管理索引):
项目和管道查询、管道文件(清单、获取、插入、更新、删除),以及
检索。 检索是决定性的:当测试设定一个时,一个脚本答案,否则就是
周期重叠对编审中文件的排名。 聊天知识工具
(单位:千美元)search_health_knowledge, (中文(简体) ), search_faq)和EMR聊天人-admin 知识 CRUD 运行对手
它没有供应商账户,没有嵌入,也没有决定.
- 行动范围: 支助
- 合同
openapi.yaml()由Python客户端的官方电线模型手写 我们的后端适配器.
安装
npm install -D @crvouga/mockingbird-service-llamacloud
仅限无害环境管理。 节点 22或 Bun 1.2. 无土生属地. 给它服务
npx mockingbird-llamacloud serve, (中文(简体) ), createServer 从 ./server (节点),或 createRuntime 与
任何获取服务器.
使用量
npx mockingbird-llamacloud serve --port 8805 --index acme-member-kb-v1 --project Default
对准应用程序:
| 消费者 | 设置 |
|---|---|
后端 LlamaCloudKnowledgeAdapter | LLAMACLOUD_BASE_URL=http://127.0.0.1:8805/api/v1 (接缝) G-L1级:适配器硬码 https://api.cloud.llamaindex.ai/api/v1 今天), 加上 LLAMACLOUD_API_KEY (任何价值)和 LLAMACLOUD_INDEX_NAME 编号 : LLAMACLOUD_PROJECT_NAME 匹配种子管道 |
Python 聊天服务( S)llama_cloud_services(中文(简体) ) | LLAMA_CLOUD_BASE_URL=http://127.0.0.1:8805 (无) /api/v1;下面核实,不需要更改代码) |
import LlamaCloud from "@llamaindex/llama-cloud"
import { createRuntime } from "@crvouga/mockingbird-service-llamacloud"
// Test setup: a pipeline, and what retrieval answers for queries mentioning "apob".
// Anything else is ranked by term overlap over the documents the app upserted.
const emulator = createRuntime({ pipelines: [{ name: "acme-member-kb-v1", projectName: "Default" }] })
await emulator.fetch(
new Request("http://llamacloud.test/__admin/retrieval", {
method: "PUT",
headers: { "content-type": "application/json" },
body: JSON.stringify({
match: { contains: "apob" },
nodes: [{ text: "ApoB counts atherogenic particles.", score: 0.92, metadata: { file_name: "apob.md" } }],
}),
}),
)
// The LlamaCloud SDK your application already uses. Only its fetch changes: requests reach
// the emulator in this process instead of api.cloud.llamaindex.ai.
const llama = new LlamaCloud({
apiKey: "llx-mockingbird",
fetch: (url: RequestInfo | URL, init?: RequestInit) => emulator.fetch(new Request(url, init)),
})
const [pipeline] = await llama.pipelines.list({ project_name: "Default", pipeline_name: "acme-member-kb-v1" })
const { retrieval_nodes } = await llama.pipelines.retrieve(pipeline?.id ?? "", { query: "What does ApoB measure?" })
console.log(retrieval_nodes[0]?.node.text, retrieval_nodes[0]?.score) // ApoB counts atherogenic particles. 0.92
路线
全部在 Authorization: Bearer <key> (任何非空密钥,除非 apiKeys 已设定). 错误是
FastAPI 形状 : {"detail": "…"},以及422个 {"detail": [{loc, msg, type}]}。 。 。 .
| 路线 | 行为 |
|---|---|
GET /api/v1/projects?project_name= | 确切名称的项目([] (没有). |
GET /api/v1/projects/{id} | 一个项目,或404个. |
GET /api/v1/pipelines?project_name=&project_id=&pipeline_name=&pipeline_type= | 匹配每个给定过滤器的管道 : [{id, name, project_id, pipeline_type: "MANAGED", embedding_config, status: "CREATED", …}]后端过滤器 project_name 选择 name == LLAMACLOUD_INDEX_NAME。 。 。 . |
GET /api/v1/pipelines/{id} | 一个管道,或404. |
POST /api/v1/pipelines/{id}/retrieve | {query, dense_similarity_top_k?, …} → {pipeline_id, retrieval_nodes: [{node: {id_, text, metadata, extra_info, …}, score}], …}。上克默认为 5. |
GET /api/v1/pipelines/{id}/documents?skip=&limit= | [{id, text, metadata, …}],最古老的第一. |
PUT /api/v1/pipelines/{id}/documents | 升级 [{id?, text, metadata}] 由 id(后端使用 sult;缺失的 id 获得UUID. 回答存储的文件. |
POST /api/v1/pipelines/{id}/documents | 与 PUT (SDK ) 相同 insert) (中文(简体) ). |
GET /api/v1/pipelines/{id}/documents/{docId} | 一份文件,或404. |
DELETE /api/v1/pipelines/{id}/documents/{docId} | 204,或为不明文件的404. |
检索
- 作是语已.
PUT /__admin/retrieval {match: {contains?, pipeline?}, nodes: [{text, score?, metadata?}]}增加一条规则。 最近增加的规则contains在查询中显示 (对案件不敏感)pipeline(身份或名称)匹配其nodes逐字记录, 被截至上克. 一个没有分数的节点得到1,0.9,0.8,. .scripted_<n>。 。 。 . - 默认: 术语重叠 . 术语是小写字母数字词 2+ 字符减
常见止语. 文档的分数是查询中在它的
文本或内容
metadata.title,四舍五入到4个位置。 不匹配的文件被丢弃并绑定 保持插入顺序。 每个文档都是一个节点(id_: "<docId>_0")及其元数据收益document_id财务报告和审定财务报表pipeline_id,后端读取的字段.
节点元数据在两者下发送 metadata (通过我们的后端阅读)和 extra_info (单位:千美元)
官方客户端模型的字段名). 没有身份证明, 谁是真正的API
发送是未经证实的.
Python 聊天 SDK: 经核实的呼叫序列
目录中将此列为未核实. 现已与安装的SDK核对:
拉玛-云层服务 0.6.88 (中文(简体) )拉玛-云 0.1.45 (中文(简体) ) 和马拉马指数核心 0.14.10 (中文(简体) ),则
版本消费者应用的Python聊天服务针. 车轮被读取
llamacloud.sdk.test.ts 运行服务的真实 LlamaCloudClient 在真实的 SDK 相对
模拟器. LlamaCloudIndex(name, project_name=…, api_key=…) 接下来是
.as_retriever(similarity_top_k=5).aretrieve(q) 发出这些呼吁:
GET /api/v1/projects?project_name=<name>数字 :resolve_project。没有匹配加价No project found with name …,并且不止一场比赛也提高了.GET /api/v1/pipelines?project_id=<id>&pipeline_name=<index>&pipeline_type=MANAGED数字 :resolve_pipeline。没有匹配加价Unknown index name …。 。 。 .GET /api/v1/pipelines/{id},则GET /api/v1/projects/{project_id}数字 :as_retriever()构建一个LlamaCloudRetriever(project_id=…, pipeline_id=…),它再次通过id解决了两者.POST /api/v1/pipelines/{id}/retrieve {query, dense_similarity_top_k: 5}。 。 。 .
基础 URL 来源 base_url 或者说 LLAMA_CLOUD_BASE_URL后退为
https://api.cloud.llamaindex.ai (单位:千美元)llama_index.core.ingestion.api_utils.get_client) (中文(简体) ). 这个
客户端没有通过 base_url,所以设置环境变量就够了。 SDK的烟花型号
严格: Pipeline.status 必须是 CREATED 或者说 DELETING,以及 embedding_config 实值
所需经费。 模拟器既能满足两者,而SDK测试如果形状漂移会失败.
差异 : python 客户端 llamacloud_project_name 默认为 "default" (小写. 这个
后端的默认值是 "Default". 项目检查准确,所以需要
LLAMACLOUD_PROJECT_NAME=Default,或种子 default 项目。 否则,客户会退化
以空取结果表示,接受测试涵盖这些结果.
运行 SDK 测试 :
uv venv /tmp/llama && VIRTUAL_ENV=/tmp/llama uv pip install \
llama-cloud-services==0.6.88 llama-cloud==0.1.45 llama-index-core==0.14.10
MOCKINGBIRD_LLAMACLOUD_PYTHON=/tmp/llama/bin/python \
MOCKINGBIRD_LLAMACLOUD_PY_CLIENT=/path/to/llamacloud_client.py bun test llamacloud.sdk
管理员(超过标准合同)
| 路线 | 效果 |
|---|---|
GET /__admin/pipelines | 命名空间的项目和管道. |
PUT /__admin/pipelines | {name, projectName?} 建立管理下的管道,必要时建立其项目。 ids是来自取名空间和取名的稳定的UUID. |
GET /__admin/pipelines/:pipeline/documents | 一个管道的文件, 通过身份或名称. |
GET /__admin/retrieval | 剧本规则,最新第一. |
PUT /__admin/retrieval | 添加一条规则, 或全部替换为 {rules: [...]} (列出的第一个胜出). |
DELETE /__admin/retrieval | 清规取道. |
GET/PUT /__admin/settings | {apiKeys?: string[], defaultTopK?: number} 呼叫的命名空间. |
错误预设( E)POST /__admin/faults {"preset": "<name>", "count"?: n}· ; GET /__admin/faults/presets:
| 预设 | 效果 |
|---|---|
index_missing | 管道搜索答案 []。 。 。 . |
retrieval_empty | 检索解答节点. |
documents_unexpected_shape | 文档列表回答对象而不是数组. |
unauthorized | 每个呼叫都答401. |
rate_limited | 每通通电话答429. |
server_error | 每召答五百个. |
slow_retrieval | 检索延迟 3 s, 或 latencyMs 当给予. |
命名空间
消费者都无法添加信头,因此可以选择三个方式:
- 页:1
x-mockingbird-namespace页眉; - (单位:千美元)
/__admin/ns/<name>基准 URL 前缀; - aPI 密钥 :
PUT /__admin/credentials {"credentials": {"<LLAMACLOUD_API_KEY>": "<namespace>"}}。 。 。 .
每个命名空间从种子管道开始,默认情况下 acme-member-kb-v1 在项目中
Default。请求的日记记录了操作编号、状态和管道及文件编号。 这个
从不记录查询、文档文本或标题.
故意不模拟
- 真实的检索质量:没有嵌入,分块,混合搜索,重新排序,元数据过滤器,
图像或页面图节点,或
retrieval_mode出行路线. 文件总是一个节点. - 管道摄入状态和同步任务. 可立即取回上层文档.
- 文件上传( E)
/api/v1/files, (中文(简体) ),pipeline_files),数据源,解析(LlamaParse)和 提取. - 通过API创建项目或管道. 使用种子或
PUT /__admin/pipelines。 。 。 . - 每个命名空间一个以上的组织.
API 密码
| 导出 | 仁爱 | 说明 |
|---|---|---|
LlamaCloudAPI | 类 | 进程模拟器 : fetch(request), (中文(简体) ), reset(), (中文(简体) ), documents(pipeline), (中文(简体) ), addRule(rule), (中文(简体) ), rules(), (中文(简体) ), clearRules(), (中文(简体) ), state选项: sqlite, (中文(简体) ), now, (中文(简体) ), namespace, (中文(简体) ), pipelines, (中文(简体) ), settings。 。 。 . |
createRuntime | 函数 | 全面服务合同的仿真器(保健、管理员、命名空间、证书、预设)。 选项 : pipelines, (中文(简体) ), settings, (中文(简体) ), clock, (中文(简体) ), seed, (中文(简体) ), adminKey, (中文(简体) ), onLog, (中文(简体) ), sqlite。 。 。 . |
LLAMACLOUD_PRESETS | 对象 | 每个命名的断层预设. |
LLAMACLOUD_NAMESPACE | 字符串 | 服务名称, "llamacloud"。 。 。 . |
DEFAULT_PIPELINES, (中文(简体) ), DEFAULT_PIPELINE_NAME, (中文(简体) ), DEFAULT_PROJECT_NAME, (中文(简体) ), DEFAULT_SETTINGS | 数值 | 种子: acme-member-kb-v1 内 Default-k5,任何钥匙. |
rank, (中文(简体) ), terms | 函数 | 默认的名词重叠排名及其标注符. |
uuidFrom | 函数 | 用于项目、管道和文件编号的稳定UUID衍生物. |
document, (中文(简体) ), operationIds, (中文(简体) ), supportedOperationIds | 数值 | 销售商为OpenAPI合同及其业务代号. |
createServer, (中文(简体) ), serveTarget, (中文(简体) ), DEFAULT_PORT (单位:千美元)./server(中文(简体) ) | 节点 | 服务过来 node:http; 数据 serve CLI目标(--index, (中文(简体) ), --project, (中文(简体) ), --api-key; 第8805号口. |
部分 嘲笑鸟。 。 。 .