Skip to content

AI 平台

概述

AI 平台提供完整的 AI 应用开发能力,包括模型管理、知识库、AI 工作流、智能对话、提示词模板等。

架构设计

┌─────────────────────────────────────────────┐
│                  AI 平台                      │
│  ┌──────────┐  ┌──────────┐  ┌──────────┐  │
│  │ 模型管理   │  │ 知识库    │  │ AI 工作流  │  │
│  │ Provider  │  │ Knowledge │  │ Workflow  │  │
│  │ LLMModel  │  │ Segment  │  │ Node      │  │
│  └────┬─────┘  └────┬─────┘  └────┬─────┘  │
│       │              │              │         │
│       ▼              ▼              ▼         │
│  ┌──────────────────────────────────────┐    │
│  │           AI 应用 (AIApp)             │    │
│  │  chatbot / agent / workflow          │    │
│  └──────────────────────────────────────┘    │
│       │                                       │
│       ▼                                       │
│  ┌──────────────────────────────────────┐    │
│  │      对话管理 (Conversation)           │    │
│  │  SSE 流式输出 / 历史管理               │    │
│  └──────────────────────────────────────┘    │
└─────────────────────────────────────────────┘

数据模型

模型管理

模型表名说明
LLMProviderai_llm_provider模型供应商(OpenAI、百度、阿里等)
LLMModelai_llm_model具体模型配置

LLMProvider 字段:name, provider_type, api_key, api_base, is_active, config(JSONB)

LLMModel 字段:provider_id, name, model_name, model_type(chat/completion/embedding/rerank), is_active, max_tokens, config(JSONB)

支持的模型类型:

model_type说明用途
chat对话模型聊天、推理、生成
completion补全模型文本补全
embedding向量模型文本向量化
rerank重排序模型检索结果重排序

AI 应用

模型表名说明
AIAppai_appAI 应用
AIAgentai_agentAI Agent 配置

AIApp 字段:name, app_type(chatbot/agent/workflow), description, icon, model_id, system_prompt, temperature, max_tokens, knowledge_base_ids, tools_config, is_published

对话管理

模型表名说明
Conversationai_conversation对话会话
Messageai_message对话消息

AI 工作流

模型表名说明
AIWorkflowai_workflowAI 工作流定义

AIWorkflow 字段:name, description, flow_definition(JSONB), is_published, version

知识库

模块结构

knowledge/
├── models/
│   ├── knowledge_base.py        # 知识库模型
│   ├── knowledge_segment.py     # 分段模型
│   └── annotation_model.py      # Q&A 标注模型
├── schemas/                     # Pydantic Schema
├── services/
│   ├── indexing_service.py      # 索引服务
│   ├── retrieval_service.py     # 检索服务
│   ├── rerank_service.py        # Rerank 重排序
│   ├── cleaning_service.py      # 文本清洗
│   └── indexing_progress_service.py  # 索引进度 SSE
├── chunking/
│   ├── text_chunker.py          # 文本分块
│   └── qa_chunker.py            # Q&A 自动拆分
└── vector_store/                # 向量存储(Qdrant)

索引流程

文件上传 → 文本提取 → 文本清洗 → 分块 → 向量化 → 存入 Qdrant

            清洗规则:
            - 合并空格
            - 移除 URL/邮箱
            - 移除 HTML 标签
            - 合并空行
            - 去行尾空白

分块策略

策略说明
文本分块按固定大小/自然段落分块
Q&A 拆分使用 LLM 将文本拆分为问答对

检索与 Rerank

python
results = await RetrievalService.retrieve(
    db=db,
    knowledge_base_ids=["kb_1", "kb_2"],
    query="如何请假",
    top_k=5,
    score_threshold=0.5,
    rerank_enabled=True,
    rerank_model_id="rerank_model_1"
)

Rerank 流程:初始检索 3x 候选 → Rerank 重排序 → 截断到 top_k

索引技术

indexing_technique说明
high_quality标准模式:Embedding + Qdrant 向量检索
economy经济模式:跳过 Embedding,使用关键词全文检索

Q&A 标注

手动创建问答对,检索时优先匹配标注结果:

POST /knowledge/{kb_id}/annotations
{
  "question": "如何请假?",
  "answer": "进入工作流-发起流程,选择请假流程..."
}

创建时自动向量化 question,检索时优先匹配标注。

AI 工作流节点

基础节点

节点说明
start开始节点,定义输入变量
end结束节点,定义输出
llmLLM 调用,支持系统提示词 + 用户输入
knowledge_retrieval知识库检索
code代码执行(Python)
template模板渲染
variable变量赋值
httpHTTP 请求
database数据库操作

流程控制节点

节点说明
condition条件分支
parallel并行执行
merge合并节点
loop循环节点
intent意图识别
subflow子流程调用

业务功能节点

节点说明
form_create创建表单
form_basic_info表单基本信息
form_ui_design表单 UI 设计
form_database_design表单数据库设计
form_database_create创建数据库表
form_list_design表单列表设计
form_publish发布表单
form_data表单数据操作
dashboard_create创建仪表盘
dashboard_basic_info仪表盘基本信息
dashboard_design仪表盘设计
dashboard_publish发布仪表盘
app_create创建应用
app_design应用设计
app_settings应用设置
app_update更新应用
text_to_sql自然语言转 SQL
dialog对话交互(确认/输入/选择)
system_summary系统摘要
snowflake_cortexSnowflake Cortex 集成

子流程节点

  • 调用已发布的 AI 工作流作为子流程
  • 变量传递模式:all / selected / none
  • 结果传递模式:all / selected / none
  • 循环依赖检测
  • 最大嵌套深度:5 层

对话服务

SSE 流式输出

GET /api/core/ai/chat/stream?conversation_id=xxx&message=你好

event: message
data: {"content": "你", "type": "text"}

event: message
data: {"content": "好", "type": "text"}

event: done
data: {"message_id": "xxx"}

对话历史

自动管理对话上下文,支持:

  • 创建/删除会话
  • 消息历史分页查询
  • 上下文窗口控制

API 列表

模型管理

方法路径说明
GET/ai/providers供应商列表
POST/ai/providers创建供应商
GET/ai/models模型列表
POST/ai/models创建模型
POST/ai/models/{id}/test测试模型

AI 应用

方法路径说明
GET/ai/apps应用列表
POST/ai/apps创建应用
POST/ai/apps/{id}/publish发布应用

知识库

方法路径说明
GET/ai/knowledge知识库列表
POST/ai/knowledge创建知识库
POST/ai/knowledge/{id}/documents上传文档
GET/ai/knowledge/{id}/segments分段列表
GET/ai/knowledge/{id}/indexing/progress索引进度(SSE)
POST/ai/knowledge/{id}/annotations创建 Q&A 标注

AI 工作流

方法路径说明
GET/ai/workflows工作流列表
POST/ai/workflows创建工作流
POST/ai/workflows/{id}/run运行工作流
POST/ai/workflows/{id}/publish发布工作流

对话

方法路径说明
GET/ai/conversations会话列表
POST/ai/conversations创建会话
GET/ai/chat/stream流式对话(SSE)

Released under the MIT License.