feat(AISVC-T8): LLM配置管理与RAG调试输出支持 [AC-AISVC-42, AC-AISVC-43, AC-AISVC-44, AC-AISVC-45, AC-AISVC-46, AC-AISVC-47, AC-AISVC-48, AC-AISVC-49, AC-AISVC-50]
- 新增 LLMProviderFactory 工厂类支持 OpenAI/Ollama/Azure [AC-AISVC-42]
- 新增 LLMConfigManager 支持配置热更新 [AC-AISVC-43, AC-AISVC-44]
- 新增 LLM 管理 API 端点 [AC-AISVC-42~AC-AISVC-46]
- 更新 RAG 实验接口支持 AI 回复生成 [AC-AISVC-47, AC-AISVC-49]
- 新增 RAG 实验流式输出 SSE [AC-AISVC-48]
- 支持指定 LLM 提供者 [AC-AISVC-50]
- 更新 OpenAPI 契约添加 LLM 管理接口
- 更新前后端规范文档 v0.4.0 迭代
2026-02-24 17:25:53 +00:00
|
|
|
|
openapi: 3.1.0
|
|
|
|
|
|
info:
|
|
|
|
|
|
title: "AI Service Admin Dependencies"
|
|
|
|
|
|
description: "ai-service-admin 模块依赖的外部 API 契约(Consumer 需求侧)"
|
|
|
|
|
|
version: "0.3.0"
|
|
|
|
|
|
x-contract-level: L1
|
|
|
|
|
|
|
|
|
|
|
|
servers:
|
|
|
|
|
|
- url: http://localhost:8000
|
|
|
|
|
|
description: 本地开发服务器
|
|
|
|
|
|
|
|
|
|
|
|
paths:
|
|
|
|
|
|
/admin/embedding/providers:
|
|
|
|
|
|
get:
|
|
|
|
|
|
operationId: listEmbeddingProviders
|
|
|
|
|
|
summary: 获取可用的嵌入模型提供者列表
|
|
|
|
|
|
tags:
|
|
|
|
|
|
- Embedding Management
|
|
|
|
|
|
parameters:
|
|
|
|
|
|
- name: X-Tenant-Id
|
|
|
|
|
|
in: header
|
|
|
|
|
|
required: true
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
responses:
|
|
|
|
|
|
'200':
|
|
|
|
|
|
description: 成功返回提供者列表
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
properties:
|
|
|
|
|
|
providers:
|
|
|
|
|
|
type: array
|
|
|
|
|
|
items:
|
|
|
|
|
|
$ref: '#/components/schemas/EmbeddingProviderInfo'
|
|
|
|
|
|
|
|
|
|
|
|
/admin/embedding/config:
|
|
|
|
|
|
get:
|
|
|
|
|
|
operationId: getEmbeddingConfig
|
|
|
|
|
|
summary: 获取当前嵌入模型配置
|
|
|
|
|
|
tags:
|
|
|
|
|
|
- Embedding Management
|
|
|
|
|
|
parameters:
|
|
|
|
|
|
- name: X-Tenant-Id
|
|
|
|
|
|
in: header
|
|
|
|
|
|
required: true
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
responses:
|
|
|
|
|
|
'200':
|
|
|
|
|
|
description: 成功返回当前配置
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
|
|
|
|
|
$ref: '#/components/schemas/EmbeddingConfig'
|
|
|
|
|
|
put:
|
|
|
|
|
|
operationId: updateEmbeddingConfig
|
|
|
|
|
|
summary: 更新嵌入模型配置
|
|
|
|
|
|
tags:
|
|
|
|
|
|
- Embedding Management
|
|
|
|
|
|
parameters:
|
|
|
|
|
|
- name: X-Tenant-Id
|
|
|
|
|
|
in: header
|
|
|
|
|
|
required: true
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
requestBody:
|
|
|
|
|
|
required: true
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
|
|
|
|
|
$ref: '#/components/schemas/EmbeddingConfigUpdate'
|
|
|
|
|
|
responses:
|
|
|
|
|
|
'200':
|
|
|
|
|
|
description: 配置更新成功
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
properties:
|
|
|
|
|
|
success:
|
|
|
|
|
|
type: boolean
|
|
|
|
|
|
message:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
|
|
|
|
|
|
/admin/embedding/test:
|
|
|
|
|
|
post:
|
|
|
|
|
|
operationId: testEmbedding
|
|
|
|
|
|
summary: 测试嵌入模型连接
|
|
|
|
|
|
tags:
|
|
|
|
|
|
- Embedding Management
|
|
|
|
|
|
parameters:
|
|
|
|
|
|
- name: X-Tenant-Id
|
|
|
|
|
|
in: header
|
|
|
|
|
|
required: true
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
requestBody:
|
|
|
|
|
|
required: false
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
properties:
|
|
|
|
|
|
test_text:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: 测试文本(可选)
|
|
|
|
|
|
config:
|
|
|
|
|
|
$ref: '#/components/schemas/EmbeddingConfigUpdate'
|
|
|
|
|
|
responses:
|
|
|
|
|
|
'200':
|
|
|
|
|
|
description: 测试成功
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
|
|
|
|
|
$ref: '#/components/schemas/EmbeddingTestResult'
|
|
|
|
|
|
|
|
|
|
|
|
/admin/embedding/formats:
|
|
|
|
|
|
get:
|
|
|
|
|
|
operationId: getSupportedFormats
|
|
|
|
|
|
summary: 获取支持的文档格式列表
|
|
|
|
|
|
tags:
|
|
|
|
|
|
- Embedding Management
|
|
|
|
|
|
parameters:
|
|
|
|
|
|
- name: X-Tenant-Id
|
|
|
|
|
|
in: header
|
|
|
|
|
|
required: true
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
responses:
|
|
|
|
|
|
'200':
|
|
|
|
|
|
description: 成功返回支持格式列表
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
properties:
|
|
|
|
|
|
formats:
|
|
|
|
|
|
type: array
|
|
|
|
|
|
items:
|
|
|
|
|
|
$ref: '#/components/schemas/DocumentFormat'
|
|
|
|
|
|
|
|
|
|
|
|
/admin/llm/providers:
|
|
|
|
|
|
get:
|
|
|
|
|
|
operationId: listLLMProviders
|
|
|
|
|
|
summary: 获取可用的 LLM 提供者列表
|
|
|
|
|
|
tags:
|
|
|
|
|
|
- LLM Management
|
|
|
|
|
|
parameters:
|
|
|
|
|
|
- name: X-Tenant-Id
|
|
|
|
|
|
in: header
|
|
|
|
|
|
required: true
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
responses:
|
|
|
|
|
|
'200':
|
|
|
|
|
|
description: 成功返回提供者列表
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
properties:
|
|
|
|
|
|
providers:
|
|
|
|
|
|
type: array
|
|
|
|
|
|
items:
|
|
|
|
|
|
$ref: '#/components/schemas/LLMProviderInfo'
|
|
|
|
|
|
|
|
|
|
|
|
/admin/llm/config:
|
|
|
|
|
|
get:
|
|
|
|
|
|
operationId: getLLMConfig
|
|
|
|
|
|
summary: 获取当前 LLM 配置
|
|
|
|
|
|
tags:
|
|
|
|
|
|
- LLM Management
|
|
|
|
|
|
parameters:
|
|
|
|
|
|
- name: X-Tenant-Id
|
|
|
|
|
|
in: header
|
|
|
|
|
|
required: true
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
responses:
|
|
|
|
|
|
'200':
|
|
|
|
|
|
description: 成功返回当前配置
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
|
|
|
|
|
$ref: '#/components/schemas/LLMConfig'
|
|
|
|
|
|
put:
|
|
|
|
|
|
operationId: updateLLMConfig
|
|
|
|
|
|
summary: 更新 LLM 配置
|
|
|
|
|
|
tags:
|
|
|
|
|
|
- LLM Management
|
|
|
|
|
|
parameters:
|
|
|
|
|
|
- name: X-Tenant-Id
|
|
|
|
|
|
in: header
|
|
|
|
|
|
required: true
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
requestBody:
|
|
|
|
|
|
required: true
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
|
|
|
|
|
$ref: '#/components/schemas/LLMConfigUpdate'
|
|
|
|
|
|
responses:
|
|
|
|
|
|
'200':
|
|
|
|
|
|
description: 配置更新成功
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
properties:
|
|
|
|
|
|
success:
|
|
|
|
|
|
type: boolean
|
|
|
|
|
|
message:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
|
|
|
|
|
|
/admin/llm/test:
|
|
|
|
|
|
post:
|
|
|
|
|
|
operationId: testLLM
|
|
|
|
|
|
summary: 测试 LLM 连接
|
|
|
|
|
|
tags:
|
|
|
|
|
|
- LLM Management
|
|
|
|
|
|
parameters:
|
|
|
|
|
|
- name: X-Tenant-Id
|
|
|
|
|
|
in: header
|
|
|
|
|
|
required: true
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
requestBody:
|
|
|
|
|
|
required: false
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
properties:
|
|
|
|
|
|
test_prompt:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: 测试提示词(可选)
|
|
|
|
|
|
example: "你好,请简单介绍一下自己。"
|
|
|
|
|
|
config:
|
|
|
|
|
|
$ref: '#/components/schemas/LLMConfigUpdate'
|
|
|
|
|
|
responses:
|
|
|
|
|
|
'200':
|
|
|
|
|
|
description: 测试成功
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
|
|
|
|
|
$ref: '#/components/schemas/LLMTestResult'
|
|
|
|
|
|
|
|
|
|
|
|
/admin/rag/experiments/run:
|
|
|
|
|
|
post:
|
|
|
|
|
|
operationId: runRagExperiment
|
|
|
|
|
|
summary: 运行 RAG 实验(含 AI 输出)
|
|
|
|
|
|
tags:
|
|
|
|
|
|
- RAG Lab
|
|
|
|
|
|
parameters:
|
|
|
|
|
|
- name: X-Tenant-Id
|
|
|
|
|
|
in: header
|
|
|
|
|
|
required: true
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
requestBody:
|
|
|
|
|
|
required: true
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
|
|
|
|
|
$ref: '#/components/schemas/RagExperimentRequest'
|
|
|
|
|
|
responses:
|
|
|
|
|
|
'200':
|
|
|
|
|
|
description: 实验完成
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
|
|
|
|
|
$ref: '#/components/schemas/RagExperimentResult'
|
|
|
|
|
|
|
|
|
|
|
|
/admin/rag/experiments/stream:
|
|
|
|
|
|
post:
|
|
|
|
|
|
operationId: runRagExperimentStream
|
|
|
|
|
|
summary: 运行 RAG 实验(流式输出)
|
|
|
|
|
|
tags:
|
|
|
|
|
|
- RAG Lab
|
|
|
|
|
|
parameters:
|
|
|
|
|
|
- name: X-Tenant-Id
|
|
|
|
|
|
in: header
|
|
|
|
|
|
required: true
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
requestBody:
|
|
|
|
|
|
required: true
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
|
|
|
|
|
$ref: '#/components/schemas/RagExperimentRequest'
|
|
|
|
|
|
responses:
|
|
|
|
|
|
'200':
|
|
|
|
|
|
description: SSE 流式输出
|
|
|
|
|
|
content:
|
|
|
|
|
|
text/event-stream:
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
|
|
|
|
|
|
components:
|
|
|
|
|
|
schemas:
|
|
|
|
|
|
EmbeddingProviderInfo:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
required:
|
|
|
|
|
|
- name
|
|
|
|
|
|
- display_name
|
|
|
|
|
|
- config_schema
|
|
|
|
|
|
properties:
|
|
|
|
|
|
name:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: 提供者唯一标识
|
|
|
|
|
|
example: "ollama"
|
|
|
|
|
|
display_name:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: 提供者显示名称
|
|
|
|
|
|
example: "Ollama 本地模型"
|
|
|
|
|
|
description:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: 提供者描述
|
|
|
|
|
|
example: "使用 Ollama 运行的本地嵌入模型"
|
|
|
|
|
|
config_schema:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
description: 配置参数定义(JSON Schema 格式)
|
|
|
|
|
|
additionalProperties: true
|
|
|
|
|
|
|
|
|
|
|
|
EmbeddingConfig:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
required:
|
|
|
|
|
|
- provider
|
|
|
|
|
|
- config
|
|
|
|
|
|
properties:
|
|
|
|
|
|
provider:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: 当前激活的提供者
|
|
|
|
|
|
example: "ollama"
|
|
|
|
|
|
config:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
description: 提供者配置参数
|
|
|
|
|
|
additionalProperties: true
|
|
|
|
|
|
updated_at:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
format: date-time
|
|
|
|
|
|
description: 配置最后更新时间
|
|
|
|
|
|
|
|
|
|
|
|
EmbeddingConfigUpdate:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
required:
|
|
|
|
|
|
- provider
|
|
|
|
|
|
properties:
|
|
|
|
|
|
provider:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: 提供者标识
|
|
|
|
|
|
example: "ollama"
|
|
|
|
|
|
config:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
description: 提供者配置参数
|
|
|
|
|
|
additionalProperties: true
|
|
|
|
|
|
|
|
|
|
|
|
EmbeddingTestResult:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
required:
|
|
|
|
|
|
- success
|
|
|
|
|
|
- dimension
|
|
|
|
|
|
properties:
|
|
|
|
|
|
success:
|
|
|
|
|
|
type: boolean
|
|
|
|
|
|
description: 测试是否成功
|
|
|
|
|
|
dimension:
|
|
|
|
|
|
type: integer
|
|
|
|
|
|
description: 返回的向量维度
|
|
|
|
|
|
example: 768
|
|
|
|
|
|
latency_ms:
|
|
|
|
|
|
type: number
|
|
|
|
|
|
description: 响应延迟(毫秒)
|
|
|
|
|
|
example: 125.5
|
|
|
|
|
|
message:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: 测试结果消息
|
|
|
|
|
|
example: "连接成功,向量维度: 768"
|
|
|
|
|
|
error:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: 错误信息(失败时)
|
|
|
|
|
|
example: "连接超时"
|
|
|
|
|
|
|
|
|
|
|
|
DocumentFormat:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
required:
|
|
|
|
|
|
- extension
|
|
|
|
|
|
- name
|
|
|
|
|
|
properties:
|
|
|
|
|
|
extension:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: 文件扩展名
|
|
|
|
|
|
example: ".pdf"
|
|
|
|
|
|
name:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: 格式名称
|
|
|
|
|
|
example: "PDF 文档"
|
|
|
|
|
|
description:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: 格式描述
|
|
|
|
|
|
example: "使用 PyMuPDF 解析 PDF 文档"
|
|
|
|
|
|
|
|
|
|
|
|
LLMProviderInfo:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
required:
|
|
|
|
|
|
- name
|
|
|
|
|
|
- display_name
|
|
|
|
|
|
- config_schema
|
|
|
|
|
|
properties:
|
|
|
|
|
|
name:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: 提供者唯一标识
|
|
|
|
|
|
example: "openai"
|
|
|
|
|
|
display_name:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: 提供者显示名称
|
|
|
|
|
|
example: "OpenAI"
|
|
|
|
|
|
description:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: 提供者描述
|
|
|
|
|
|
example: "OpenAI GPT 系列模型"
|
|
|
|
|
|
config_schema:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
description: 配置参数定义(JSON Schema 格式)
|
|
|
|
|
|
additionalProperties: true
|
|
|
|
|
|
|
|
|
|
|
|
LLMConfig:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
required:
|
|
|
|
|
|
- provider
|
|
|
|
|
|
- config
|
|
|
|
|
|
properties:
|
|
|
|
|
|
provider:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: 当前激活的提供者
|
|
|
|
|
|
example: "openai"
|
|
|
|
|
|
config:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
description: 提供者配置参数
|
|
|
|
|
|
additionalProperties: true
|
|
|
|
|
|
example:
|
|
|
|
|
|
api_key: "sk-xxx"
|
|
|
|
|
|
base_url: "https://api.openai.com/v1"
|
|
|
|
|
|
model: "gpt-4o-mini"
|
|
|
|
|
|
updated_at:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
format: date-time
|
|
|
|
|
|
description: 配置最后更新时间
|
|
|
|
|
|
|
|
|
|
|
|
LLMConfigUpdate:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
required:
|
|
|
|
|
|
- provider
|
|
|
|
|
|
properties:
|
|
|
|
|
|
provider:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: 提供者标识
|
|
|
|
|
|
example: "openai"
|
|
|
|
|
|
config:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
description: 提供者配置参数
|
|
|
|
|
|
additionalProperties: true
|
|
|
|
|
|
|
|
|
|
|
|
LLMTestResult:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
required:
|
|
|
|
|
|
- success
|
|
|
|
|
|
properties:
|
|
|
|
|
|
success:
|
|
|
|
|
|
type: boolean
|
|
|
|
|
|
description: 测试是否成功
|
|
|
|
|
|
response:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: LLM 响应内容
|
|
|
|
|
|
example: "你好!我是一个 AI 助手..."
|
|
|
|
|
|
latency_ms:
|
|
|
|
|
|
type: number
|
|
|
|
|
|
description: 响应延迟(毫秒)
|
|
|
|
|
|
example: 1250.5
|
|
|
|
|
|
prompt_tokens:
|
|
|
|
|
|
type: integer
|
|
|
|
|
|
description: 输入 Token 数
|
|
|
|
|
|
example: 15
|
|
|
|
|
|
completion_tokens:
|
|
|
|
|
|
type: integer
|
|
|
|
|
|
description: 输出 Token 数
|
|
|
|
|
|
example: 50
|
|
|
|
|
|
total_tokens:
|
|
|
|
|
|
type: integer
|
|
|
|
|
|
description: 总 Token 数
|
|
|
|
|
|
example: 65
|
|
|
|
|
|
message:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: 测试结果消息
|
|
|
|
|
|
example: "连接成功"
|
|
|
|
|
|
error:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: 错误信息(失败时)
|
|
|
|
|
|
example: "API Key 无效"
|
|
|
|
|
|
|
|
|
|
|
|
RagExperimentRequest:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
required:
|
|
|
|
|
|
- query
|
|
|
|
|
|
properties:
|
|
|
|
|
|
query:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: 查询文本
|
|
|
|
|
|
example: "什么是 RAG?"
|
|
|
|
|
|
kb_ids:
|
|
|
|
|
|
type: array
|
|
|
|
|
|
items:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: 知识库 ID 列表
|
|
|
|
|
|
top_k:
|
|
|
|
|
|
type: integer
|
|
|
|
|
|
description: 检索数量
|
|
|
|
|
|
default: 5
|
|
|
|
|
|
score_threshold:
|
|
|
|
|
|
type: number
|
|
|
|
|
|
description: 相似度阈值
|
|
|
|
|
|
default: 0.5
|
|
|
|
|
|
llm_provider:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: 指定 LLM 提供者(可选)
|
|
|
|
|
|
example: "openai"
|
|
|
|
|
|
generate_response:
|
|
|
|
|
|
type: boolean
|
|
|
|
|
|
description: 是否生成 AI 回复
|
|
|
|
|
|
default: true
|
|
|
|
|
|
|
|
|
|
|
|
RagExperimentResult:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
properties:
|
|
|
|
|
|
query:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: 原始查询
|
|
|
|
|
|
retrieval_results:
|
|
|
|
|
|
type: array
|
|
|
|
|
|
items:
|
|
|
|
|
|
$ref: '#/components/schemas/RetrievalResult'
|
|
|
|
|
|
final_prompt:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: 最终拼接的 Prompt
|
|
|
|
|
|
ai_response:
|
|
|
|
|
|
$ref: '#/components/schemas/AIResponse'
|
|
|
|
|
|
total_latency_ms:
|
|
|
|
|
|
type: number
|
|
|
|
|
|
description: 总耗时(毫秒)
|
|
|
|
|
|
|
|
|
|
|
|
RetrievalResult:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
properties:
|
|
|
|
|
|
content:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: 检索到的内容
|
|
|
|
|
|
score:
|
|
|
|
|
|
type: number
|
|
|
|
|
|
description: 相似度分数
|
|
|
|
|
|
source:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: 来源文档
|
|
|
|
|
|
metadata:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
additionalProperties: true
|
|
|
|
|
|
description: 元数据
|
|
|
|
|
|
|
|
|
|
|
|
AIResponse:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
properties:
|
|
|
|
|
|
content:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: AI 回复内容
|
|
|
|
|
|
prompt_tokens:
|
|
|
|
|
|
type: integer
|
|
|
|
|
|
description: 输入 Token 数
|
|
|
|
|
|
completion_tokens:
|
|
|
|
|
|
type: integer
|
|
|
|
|
|
description: 输出 Token 数
|
|
|
|
|
|
total_tokens:
|
|
|
|
|
|
type: integer
|
|
|
|
|
|
description: 总 Token 数
|
|
|
|
|
|
latency_ms:
|
|
|
|
|
|
type: number
|
|
|
|
|
|
description: 生成耗时(毫秒)
|
|
|
|
|
|
model:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
description: 使用的模型
|