Files
Olares/docs/zh/developer/develop/advanced/ai.md
2025-07-17 11:58:59 +08:00

548 lines
14 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
outline: [2, 3]
---
# AI
## API 前缀
`agent.{username}.olares.com/api/controllers/console/api`
## 基本应用管理 API
### 获取 App 列表
- **Request**
- **URL**: `/apps`
- **Method**: `GET`
- **URL Parameters**: `/apps?page=1&limit=30&name=Ashia`
:::tip
本文档中列出的大多数 API 都需要`app_id`,可以从该 API 的 Response 中获取该`app_id`
:::
### 创建应用
- **Request**
- **URL**: `/apps`
- **Method**: `POST`
- **Body Example**:
```json
{
"name": "TEST",
"icon": "🤖",
"icon_background": "#FFEAD5",
"mode": "agent-chat",
"description": "JUST A TEST"
}
```
### 获取应用细节
- **Request**
- **URL**: `/apps/{uuid:app_id}`
- **Method**: `GET`
- **Body Example**: `null`
### 删除应用
- **Request**
- **URL**: `/apps/{uuid:app_id}`
- **Method**: `DELETE`
- **Body Example**: `null`
### 复制应用
- **Request**
- **URL**: `/apps/{uuid:app_id}/copy`
- **Method**: `POST`
- **Body Example**:
```json
{
"name": "Ashia-2",
"icon": "🤖",
"icon_background": "#FFEAD5",
"mode": "agent-chat"
}
```
### 应用重命名
- **Request**
- **URL**: `/apps/{uuid:app_id}/name`
- **Method**: `POST`
- **Body Example**:
```json
{
"name": "Ashia—34"
}
```
### 修改应用图标
- **Request**
- **URL**: `/apps/{uuid:app_id}/icon`
- **Method**: `POST`
- **Body Example**:
```json
{
"icon": "heavy_check_mark"
}
```
### 应用网页访问控制
> 调整应用是否可网页访问。
- **Request**
- **URL**: `/apps/{uuid:app_id}/site-enable`
- **Method**: `POST`
- **Body Example**:
```json
{
"enable_site": true
}
```
### 应用 API 访问控制
> 调整应用是否可 API 访问
- **Request**
- **URL**: `/apps/{uuid:app_id}/api-enable`
- **Method**: `POST`
- **Body Example**:
```json
{
"enable_api": true
}
```
## 应用 Function API
### 文本生成
> 文本生成型应用的执行接口
- **Request**
- **URL**: `/apps/{uuid:app_id}/completion-messages`
- **Method**: `POST`
- **Body Example**:
:::details
```json
{
"inputs": {
"query": "Hello"
},
"model_config": {
"pre_prompt": "{{query}}",
"prompt_type": "simple",
"chat_prompt_config": {},
"completion_prompt_config": {},
"user_input_form": [
{
"paragraph": {
"label": "Query",
"variable": "query",
"required": true,
"default": ""
}
}
],
"dataset_query_variable": "",
"opening_statement": null,
"suggested_questions_after_answer": {
"enabled": false
},
"speech_to_text": {
"enabled": false
},
"retriever_resource": {
"enabled": false
},
"sensitive_word_avoidance": {
"enabled": false,
"type": "",
"configs": []
},
"more_like_this": {
"enabled": false
},
"model": {
"provider": "openai_api_compatible",
"name": "nitro",
"mode": "chat",
"completion_params": {
"temperature": 0.7,
"top_p": 1,
"frequency_penalty": 0,
"presence_penalty": 0,
"max_tokens": 512
}
},
"text_to_speech": {
"enabled": false,
"voice": "",
"language": ""
},
"agent_mode": {
"enabled": false,
"tools": []
},
"dataset_configs": {
"retrieval_model": "single",
"datasets": {
"datasets": []
}
},
"file_upload": {
"image": {
"enabled": false,
"number_limits": 3,
"detail": "high",
"transfer_methods": [
"remote_url",
"local_file"
]
}
}
},
"response_mode": "streaming"
}
```
:::
## 文本生成停止
> 文本生成型应用执行中断任务接口
- **Request**
- **URL**: `/apps/{uuid:app_id}/completion-messages/{string:task_id}/stop`
- **Method**: `POST`
- **Body Example**: `null`
:::tip
该 API 中所需的 `task_id` 可以从[文本生成](#文本生成) API 的 Response流式传输中获取。
:::
## 聊天
> 聊天型应用的执行接口
- **Request**
- **URL**: `/apps/{uuid:app_id}/chat-messages`
- **Method**: `POST`
- **Body Example**:
:::details
```json
{
"response_mode": "streaming",
"conversation_id": "",
"query": "Hello",
"inputs": {},
"model_config": {
"pre_prompt": "",
"prompt_type": "simple",
"chat_prompt_config": {},
"completion_prompt_config": {},
"user_input_form": [],
"dataset_query_variable": "",
"opening_statement": "",
"more_like_this": {
"enabled": false
},
"suggested_questions": [],
"suggested_questions_after_answer": {
"enabled": false
},
"text_to_speech": {
"enabled": false,
"voice": "",
"language": ""
},
"speech_to_text": {
"enabled": false
},
"retriever_resource": {
"enabled": false
},
"sensitive_word_avoidance": {
"enabled": false
},
"agent_mode": {
"max_iteration": 5,
"enabled": true,
"tools": [],
"strategy": "react"
},
"dataset_configs": {
"retrieval_model": "single",
"datasets": {
"datasets": []
}
},
"file_upload": {
"image": {
"enabled": false,
"number_limits": 2,
"detail": "low",
"transfer_methods": [
"local_file"
]
}
},
"annotation_reply": {
"enabled": false
},
"supportAnnotation": true,
"appId": "2c937aae-f4f2-4cf9-b6e2-f2f2756858c0",
"supportCitationHitInfo": true,
"model": {
"provider": "openai_api_compatible",
"name": "nitro",
"mode": "chat",
"completion_params": {
"temperature": 2,
"top_p": 1,
"frequency_penalty": 0,
"presence_penalty": 0,
"max_tokens": 512,
"stop": []
}
}
}
}
```
:::
## 聊天停止
> 聊天型应用执行中断任务接口
- **Request**
- **URL**: `/apps/{uuid:app_id}/chat-messages/{string:task_id}/stop`
- **Method**: `POST`
- **Body Example**: `null`
:::tip
该 API 中所需的 `task_id` 可以从[聊天](#聊天) API 的 Response流式传输中获取。
:::
### 获取会话列表(文本生成)
- **Request**
- **URL**: `/apps/{uuid:app_id}/completion-conversations`
- **Method**: `GET`
- **URL Parameters**: `/apps/{uuid:app_id}/completion-conversations?page=1&limit=30`
:::tip
下面列出的会话文本生成API 需要 `conversation_id`,可以从该 API 的 Response 中获取。
:::
### 获取会话细节(文本生成)
- **Request**
- **URL**: `/apps/{uuid:app_id}/completion-conversations/{uuid:conversation_id}`
- **Method**: `GET`
- **Body Example**: `null`
:::tip
下面列出的会话文本生成API 需要 `message_id`,可以从该 API 的 Response 中获取。
:::
### 删除会话细节(文本生成)
- **Request**
- **URL**: `/apps/{uuid:app_id}/completion-conversations/{uuid:conversation_id}`
- **Method**: `DELETE`
- **Body Example**: `null`
### 获取会话列表(聊天)
- **Request**
- **URL**: `/apps/{uuid:app_id}/chat-conversations`
- **Method**: `GET`
- **URL Parameters**: `/apps/{uuid:app_id}/chat-conversations?page=1&limit=30`
:::tip
下面列出的会话聊天API 需要 `conversation_id`,可以从该 API 的 Response 中获取。
:::
### 获取会话细节(聊天)
- **Request**
- **URL**: `/apps/{uuid:app_id}/chat-conversations/{uuid:conversation_id}`
- **Method**: `GET`
- **Body Example**: `null`
:::tip
下面列出的会话对话API 需要 `message_id`,可以从该 API 的 Response 中获取。
:::
### 删除会话细节(聊天)
- **Request**
- **URL**: `/apps/{uuid:app_id}/chat-conversations/{uuid:conversation_id}`
- **Method**: `DELETE`
- **Body Example**: `null`
### 推荐问题(聊天)
> 在对话型应用中,获取 AI 给出回复后可以提出的建议问题
- **Request**
- **URL**: `/apps/{uuid:app_id}/chat-messages/{uuid:message_id}/suggested-questions`
- **Method**: `GET`
- **Body Example**: `null`
### 获取消息列表(聊天)
- **Request**
- **URL**: `/apps/{uuid:app_id}/chat-messages`
- **Method**: `GET`
- **URL Parameters**: `/apps/{uuid:app_id}/chat-messages?conversation_id={conversation_id}`
### 消息反馈
> 对应用消息反馈喜欢或不喜欢
- **Request**
- **URL**: `/apps/{uuid:app_id}/feedbacks`
- **Method**: `POST`
- **Body Example**:
```json
{
"rating": "like" // "like" | "dislike" | null
}
```
### 消息标注
> 对来自应用的消息进行标注(文本生成)
- **Request**
- **URL**: `/apps/{uuid:app_id}/annotations`
- **Method**: `POST`
- **Body Example**:
```json
{
"message_id": "2b79fdad-e513-45ef-9532-8de5086cb81c",
"question": "query:How are you?",
"answer": "some answer messages"
}
```
### 消息标注统计
> 获取应用当前消息的注释条数
- **Request**
- **URL**: `/apps/{uuid:app_id}/annotations/count`
- **Method**: `GET`
- **Body Example**: `null`
### 获取消息细节(聊天)
- **Request**
- **URL**: `/apps/{uuid:app_id}/messages/{uuid:message_id}`
- **Method**: `GET`
- **Body Example**: `null`
## 高级应用管理 API
### 模型配置
- **Request**
- **URL**: `/apps/{uuid:app_id}/model-config`
- **Method**: `POST`
- **Body Example**:
:::details
```json
{
"pre_prompt": "",
"prompt_type": "simple",
"chat_prompt_config": {},
"completion_prompt_config": {},
"user_input_form": [],
"dataset_query_variable": "",
"opening_statement": "",
"suggested_questions": [],
"more_like_this": {
"enabled": false
},
"suggested_questions_after_answer": {
"enabled": false
},
"speech_to_text": {
"enabled": false
},
"text_to_speech": {
"enabled": false,
"language": "",
"voice": ""
},
"retriever_resource": {
"enabled": false
},
"sensitive_word_avoidance": {
"enabled": false
},
"agent_mode": {
"max_iteration": 5,
"enabled": true,
"strategy": "react",
"tools": []
},
"model": {
"provider": "openai_api_compatible",
"name": "nitro",
"mode": "chat",
"completion_params": {
"frequency_penalty": 0,
"max_tokens": 512,
"presence_penalty": 0,
"stop": [],
"temperature": 2,
"top_p": 1
}
},
"dataset_configs": {
"retrieval_model": "single",
"datasets": {
"datasets": []
}
},
"file_upload": {
"image": {
"enabled": false,
"number_limits": 2,
"detail": "low",
"transfer_methods": [
"local_file"
]
}
}
}
```
:::
### 修改应用基本信息
- **Request**
- **URL**: `/apps/{uuid:app_id}/site`
- **Method**: `POST`
- **Body Example**:
```json
{
"title": "Ashias-23",
"icon": "grin",
"icon_background": "#000000",
"description": "How do you do~"
}
```
### 重新生成公开访问的 URL
> 重新生成应用的公共访问 URL
- **Request**
- **URL**: `/apps/{uuid:app_id}/site/access-token-reset`
- **Method**: `POST`
- **Body Example**: `null`
## 应用统计 API
### 全部消息数统计
- **Request**
- **URL**: `/apps/{uuid:app_id}/statistics/daily-conversations`
- **Method**: `GET`
- **URL Parameters**: `/apps/{uuid:app_id}/statistics/daily-conversations?start=2024-04-19%2016%3A28&end=2024-04-26%2016%3A28`
### 活跃用户统计
- **Request**
- **URL**: `/apps/{uuid:app_id}/statistics/daily-end-users`
- **Method**: `GET`
- **URL Parameters**: `/apps/{uuid:app_id}/statistics/daily-end-users?start=2024-04-19%2016%3A28&end=2024-04-26%2016%3A28`
### 费用消耗统计
- **Request**
- **URL**: `/apps/{uuid:app_id}/statistics/token-costs`
- **Method**: `GET`
- **URL Parameters**: `/apps/{uuid:app_id}/statistics/token-costs?start=2024-04-19%2016%3A28&end=2024-04-26%2016%3A28`
### 平均会话互动数统计
- **Request**
- **URL**: `/apps/{uuid:app_id}/statistics/average-session-interactions`
- **Method**: `GET`
- **URL Parameters**: `/apps/{uuid:app_id}/statistics/average-session-interactions?start=2024-04-19%2016%3A28&end=2024-04-26%2016%3A28`
### 用户满意度统计
- **Request**
- **URL**: `/apps/{uuid:app_id}/statistics/user-satisfaction-rate`
- **Method**: `GET`
- **URL Parameters**: `/apps/{uuid:app_id}/statistics/user-satisfaction-rate?start=2024-04-19%2016%3A28&end=2024-04-26%2016%3A28`
### 平均响应时间统计
- **Request**
- **URL**: `/apps/{uuid:app_id}/statistics/average-response-time`
- **Method**: `GET`
- **URL Parameters**: `/apps/{uuid:app_id}/statistics/average-response-time?start=2024-04-19%2016%3A28&end=2024-04-26%2016%3A28`
### Token 输出速度统计
- **Request**
- **URL**: `/apps/{uuid:app_id}/statistics/tokens-per-second`
- **Method**: `GET`
- **URL Parameters**: `/apps/{uuid:app_id}/statistics/tokens-per-second?start=2024-04-19%2016%3A28&end=2024-04-26%2016%3A28`