import { CodeGroup } from '../code.tsx'
import { Row, Col, Properties, Property, Heading, SubProperty, Paragraph } from '../md.tsx'
# Chat App API
For versatile conversational apps using a Q&A format, call the chat-messages API to initiate dialogue. Maintain ongoing conversations by passing the returned conversation_id. Response parameters and templates depend on LangGenius Prompt Eng. settings. **[Before you start, READ This !! What is a Bearer Token](https://swagger.io/docs/specification/authentication/bearer-authentication/)**
Create a new conversation message or continue an existing dialogue.
### Request Body
(Optional) Provide user input fields as key-value pairs, corresponding to variables in Prompt Eng. Key is the variable name, Value is the parameter value. If the field type is Select, the submitted Value must be one of the preset choices.
{!!props.variables.length && props.variables.map(
val => (
{val.name ? `${val.name}` : ''}
)
)}
User input/question content
- Blocking type, waiting for execution to complete and returning results. (Requests may be interrupted if the process is long)
- streaming returns. Implementation of streaming return based on SSE (**[Server-Sent Events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events)**).
(Required) Conversation ID: ‼️ leave it empty for first-time (eg. conversation_id: "") conversation ‼️; pass conversation_id from context to continue dialogue.
The user identifier, defined by the developer, must ensure uniqueness within the app.
```bash {{ title: 'cURL' }}
curl --location --request POST 'https://cloud.langgenius.dev/api/chat-messages' \
--header 'Authorization: Bearer ENTER-YOUR-SECRET-KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"inputs": {},
"query": "eh",
"response_mode": "streaming",
"conversation_id": "1c7e55fb-1ba2-4e10-81b5-30addcea2276",
"user": "abc-123"
}'
```
### blocking
```json {{ title: 'Response' }}
{
"answer": "Hi, is there anything I can help you?",
"conversation_id": "45701982-8118-4bc5-8e9b-64562b4555f2",
"created_at": 1679587005,
"id": "059f87d9-15c0-473a-870c-fde95cdcc1e4"
}
```
### streaming
```streaming {{ title: 'Response' }}
data: {"id": "5ad4cb98-f0c7-4085-b384-88c403be6290", "answer": " I", "created_at": 1679586595}
data: {"id": "5ad4cb98-f0c7-4085-b384-88c403be6290", "answer": " I", "created_at": 1679586595}
```
---
Rate received messages on behalf of end-users with likes or dislikes. This data is visible in the Logs & Annotations page and used for future model fine-tuning.
### Path Params
Message ID
### Request Body
like or dislike, null is undo
The user identifier, defined by the developer, must ensure uniqueness within the app.
```bash {{ title: 'cURL' }}
curl --location --request POST 'https://cloud.langgenius.dev/api/messages/{message_id}/feedbacks' \
--header 'Authorization: Bearer ENTER-YOUR-SECRET-KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"rating": "like",
"user": "abc-123"
}'
```
```json {{ title: 'Response' }}
{
"has_more": false,
"data": [
{
"id": "WAz8eIbvDR60rouK",
"conversation_id": "xgQQXg3hrtjh7AvZ",
"inputs": {},
"query": "...",
"answer": "...",
"feedback": "like",
"created_at": 692233200
},
{
"id": "hSIhXBhNe8X1d8Et"
// ...
}
]
}
```
---
The first page returns the latest `limit` bar, which is in reverse order. Load previous pages by passing the `first_id` of the last message on the current page to the `first_id` parameter of the next request.
### Query
Conversation ID
ID of the first chat record on the current page. The default is none.
How many chats are returned in one request
The user identifier, defined by the developer, must ensure uniqueness within the app.
```bash {{ title: 'cURL' }}
curl --location --request GET 'https://cloud.langgenius.dev/api/messages?user=abc-123&conversation_id='
--header 'Authorization: Bearer ENTER-YOUR-SECRET-KEY'
```
```json {{ title: 'Response' }}
{
"has_more": false,
"data": [
{
"id": "WAz8eIbvDR60rouK",
"username": "FrankMcCallister",
"phone_number": "1-800-759-3000",
"avatar_url": "https://assets.protocol.chat/avatars/frank.jpg",
"display_name": null,
"conversation_id": "xgQQXg3hrtjh7AvZ",
"created_at": 692233200
},
{
"id": "hSIhXBhNe8X1d8Et"
// ...
}
]
}
```
---
Gets the session list of the current user. By default, the last 20 sessions are returned.
### Query
The ID of the last record on the current page, default none.
"How many chats are returned in one request
The user identifier, defined by the developer, must ensure uniqueness within the app.
```bash {{ title: 'cURL' }}
curl --location --request GET 'https://cloud.langgenius.dev/api/conversations?user=abc-123&last_id=&limit=20' \
--header 'Authorization: Bearer ENTER-YOUR-SECRET-KEY'
```
```json {{ title: 'Response' }}
{
"limit": 20,
"has_more": false,
"data": [
{
"id": "10799fb8-64f7-4296-bbf7-b42bfbe0ae54",
"name": "New chat",
"inputs": {
"book": "book",
"myName": "Lucy"
},
"status": "normal",
"created_at": 1679667915
},
{
"id": "hSIhXBhNe8X1d8Et"
// ...
}
]
}
```
---
Rename conversations; the name is displayed in multi-session client interfaces.
### Request Body
New name
The user identifier, defined by the developer, must ensure uniqueness within the app.
```bash {{ title: 'cURL' }}
curl --location --request POST 'https://cloud.langgenius.dev/api/conversations/{converation_id}/name' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer ENTER-YOUR-SECRET-KEY' \
--data-raw '{
"name": "",
"user": "abc-123"
}'
```
```json {{ title: 'Response' }}
{
"result": "success"
}
```
---
Delete conversation.
### Request Body
The user identifier, defined by the developer, must ensure uniqueness within the app.
```bash {{ title: 'cURL' }}
curl --location --request DELETE 'https://cloud.langgenius.dev/api/conversations/{convsation_id}' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer ENTER-YOUR-SECRET-KEY' \
--data '{
"user": "abc-123"
}'
```
```json {{ title: 'Response' }}
{
"result": "success"
}
```
---
Speech to text, only supports openai model.
### Request Body
Audio file.
File uploads are currently limited to 15 MB and the following input file types are supported: mp3, mp4, mpeg, mpga, m4a, wav, and webm.
```bash {{ title: 'cURL' }}
curl --location --request POST 'https://cloud.langgenius.dev/api/conversations/name' \
--header 'Authorization: Bearer ENTER-YOUR-SECRET-KEY' \
--form 'file=@localfile;type=audio/mp3'
```
```json {{ title: 'Response' }}
{
"text": ""
}
```
---
Retrieve configured Input parameters, including variable names, field names, types, and default values. Typically used for displaying these fields in a form or filling in default values after the client loads.
### Query
The user identifier, defined by the developer, must ensure uniqueness within the app.
```bash {{ title: 'cURL' }}
curl --location --request GET 'https://cloud.langgenius.dev/api/parameters?user=abc-123' \
--header 'Authorization: Bearer ENTER-YOUR-SECRET-KEY'
```
```json {{ title: 'Response' }}
{
"introduction": "nice to meet you",
"variables": [
{
"key": "book",
"name": "book",
"description": null,
"type": "string",
"default": null,
"options": null
},
{
// ...
}
]
}
```