Files
Olares/docs/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 Prefix
`agent.{username}.olares.com/api/controllers/console/api`
## Basic Application Management API
### Get App List
- **Request**
- **URL**: `/apps`
- **Method**: `GET`
- **URL Parameters**: `/apps?page=1&limit=30&name=Ashia`
:::tip
Most of the APIs listed in this document require the `app_id`, which can be obtained from the response of this API.
:::
### Create App
- **Request**
- **URL**: `/apps`
- **Method**: `POST`
- **Body Example**:
```json
{
"name": "TEST",
"icon": "🤖",
"icon_background": "#FFEAD5",
"mode": "agent-chat",
"description": "JUST A TEST"
}
```
### Get App Details
- **Request**
- **URL**: `/apps/{uuid:app_id}`
- **Method**: `GET`
- **Body Example**: `null`
### Delete App
- **Request**
- **URL**: `/apps/{uuid:app_id}`
- **Method**: `DELETE`
- **Body Example**: `null`
### Copy App
- **Request**
- **URL**: `/apps/{uuid:app_id}/copy`
- **Method**: `POST`
- **Body Example**:
```json
{
"name": "Ashia-2",
"icon": "🤖",
"icon_background": "#FFEAD5",
"mode": "agent-chat"
}
```
### Rename App
- **Request**
- **URL**: `/apps/{uuid:app_id}/name`
- **Method**: `POST`
- **Body Example**:
```json
{
"name": "Ashia—34"
}
```
### Change App Icon
- **Request**
- **URL**: `/apps/{uuid:app_id}/icon`
- **Method**: `POST`
- **Body Example**:
```json
{
"icon": "heavy_check_mark"
}
```
### App Web Access Control
> Whether the app can be accessed from the site.
- **Request**
- **URL**: `/apps/{uuid:app_id}/site-enable`
- **Method**: `POST`
- **Body Example**:
```json
{
"enable_site": true
}
```
### App API Access Control
> Whether the app can be accessed via API.
- **Request**
- **URL**: `/apps/{uuid:app_id}/api-enable`
- **Method**: `POST`
- **Body Example**:
```json
{
"enable_api": true
}
```
## Application Function API
### Text Generation
> Execution interface for text generation APP
- **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"
}
```
:::
### Stop Text Generation
> Interruption interface for text generation APP
- **Request**
- **URL**: `/apps/{uuid:app_id}/completion-messages/{string:task_id}/stop`
- **Method**: `POST`
- **Body Example**: `null`
:::tip
The `task_id` required in this API can be obtained from the response (streaming) of the [Text Generation](#text-generation) API.
:::
### Chat
> Execution interface for chat APP
- **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": []
}
}
}
}
```
:::
### Stop Chat
> Interruption interface for chat APP
- **Request**
- **URL**: `/apps/{uuid:app_id}/chat-messages/{string:task_id}/stop`
- **Method**: `POST`
- **Body Example**: `null`
:::tip
The `task_id` required in this API can be obtained from the response (streaming) of the [Chat](#chat) API.
:::
### Get Conversations List (Text Generation)
- **Request**
- **URL**: `/apps/{uuid:app_id}/completion-conversations`
- **Method**: `GET`
- **URL Parameters**: `/apps/{uuid:app_id}/completion-conversations?page=1&limit=30`
:::tip
the Conversations (Text Generation) APIs listed below require the `conversation_id`, which can be obtained from the response of this API.
:::
### Get Conversations Details (Text Generation)
- **Request**
- **URL**: `/apps/{uuid:app_id}/completion-conversations/{uuid:conversation_id}`
- **Method**: `GET`
- **Body Example**: `null`
:::tip
The Conversations (Text Generation) APIs listed below require the `message_id`, which can be obtained from the response of this API.
:::
### Delete Conversations Details (Text Generation)
- **Request**
- **URL**: `/apps/{uuid:app_id}/completion-conversations/{uuid:conversation_id}`
- **Method**: `DELETE`
- **Body Example**: `null`
### Get Conversations List (Chat)
- **Request**
- **URL**: `/apps/{uuid:app_id}/chat-conversations`
- **Method**: `GET`
- **URL Parameters**: `/apps/{uuid:app_id}/chat-conversations?page=1&limit=30`
:::tip
the Conversations (Chat) APIs listed below require the `conversation_id`, which can be obtained from the response of this API.
:::
### Get Conversations Details (Chat)
- **Request**
- **URL**: `/apps/{uuid:app_id}/chat-conversations/{uuid:conversation_id}`
- **Method**: `GET`
- **Body Example**: `null`
:::tip
The Conversations (Chat) APIs listed below require the `message_id`, which can be obtained from the response of this API.
:::
### Delete Conversations Details (Chat)
- **Request**
- **URL**: `/apps/{uuid:app_id}/chat-conversations/{uuid:conversation_id}`
- **Method**: `DELETE`
- **Body Example**: `null`
### Get Suggested Questions (Chat)
> In a chat APP, get the suggested questions that can be asked after the AI gives a response
- **Request**
- **URL**: `/apps/{uuid:app_id}/chat-messages/{uuid:message_id}/suggested-questions`
- **Method**: `GET`
- **Body Example**: `null`
### Get Message List (Chat)
- **Request**
- **URL**: `/apps/{uuid:app_id}/chat-messages`
- **Method**: `GET`
- **URL Parameters**: `/apps/{uuid:app_id}/chat-messages?conversation_id={conversation_id}`
### Message Feedback
> Give like or dislike feedback to the message from the APP
- **Request**
- **URL**: `/apps/{uuid:app_id}/feedbacks`
- **Method**: `POST`
- **Body Example**:
```json
{
"rating": "like" // "like" | "dislike" | null
}
```
### Message Annotation
> Give annotation to the message from the APP (Text Generation)
- **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"
}
```
### Count Annotation
> Get the current number of annotations of the APP's message
- **Request**
- **URL**: `/apps/{uuid:app_id}/annotations/count`
- **Method**: `GET`
- **Body Example**: `null`
### Get Message Details (Chat)
- **Request**
- **URL**: `/apps/{uuid:app_id}/messages/{uuid:message_id}`
- **Method**: `GET`
- **Body Example**: `null`
## Advanced Application Management API
### Model Config
- **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"
]
}
}
}
```
:::
### Change APP Basic Info
- **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~"
}
```
### Access Token Reset
> Regenerate the public access URL for the APP
- **Request**
- **URL**: `/apps/{uuid:app_id}/site/access-token-reset`
- **Method**: `POST`
- **Body Example**: `null`
## Application Statistics API
### All Conversations
- **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`
### Active Users
- **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`
### Token Costs
- **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`
### Average Session Interactions
- **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`
### User Satisfaction
- **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`
### Average Response Time
- **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 Output Speed
- **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`