Este tópico descreve como usar a classe Message na API de assistente para criar, listar, recuperar e modificar mensagens.
Nome da função | Tipo |
|---|---|
crie | Cria uma classe de mensagem |
retrieve | Recupera uma classe de mensagem |
modifique | Modifica uma classe de mensagem |
list | Lista classes de mensagem |
Criar uma mensagem
- HTTP
- SDK
curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/threads/thread_e99a9fe7-0433-426f-98ad-a5139c36579c/messages' \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--data '{
"role": "user",
"content": "Who are you",
"metadata": {}
}'
Nome do parâmetro | Parâmetros de entrada | Tipo de parâmetro | Obrigatório |
|---|---|---|---|
thread id | O ID do thread ao qual a mensagem é enviada. | string | Sim |
content | O conteúdo da mensagem. | string | Sim |
role | A função da entidade que fornece a mensagem. Apenas | string | Não |
metadata | Outras informações relacionadas. | object | Não |
{
"id": "message_f1933671-19e1-4162-ad25-7326165123e1",
"object": "thread.message",
"created_at": 1711508433283,
"thread_id": "thread_e99a9fe7-0433-426f-98ad-a5139c36579c",
"incomplete_details": {},
"completed_at": null,
"incomplete_at": null,
"assistant_id": "",
"run_id": "",
"file_ids": [],
"role": "user",
"content": [
{
"type": "text",
"text": {
"value": "Who are you",
"annotations": []
}
}
],
"metadata": {},
"name": "",
"plugin_call": {},
"tool_calls": [],
"status": "",
"request_id": "b3ad40b9-f052-9665-a064-dab11c34625f"
}
- id: o ID da mensagem.
- request_id: o ID da solicitação.
from dashscope import Messages
import os
msg = Messages.create(
'the_thread_id',
# Set the API key using an environment variable. If an environment variable is not set, replace the following line with api_key="sk-xxx" and your Model Studio API key.
api_key=os.getenv("DASHSCOPE_API_KEY"),
content='The message content.',
role='user',
metadata={'key': 'value'}
)
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.InvalidateParameter;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.threads.messages.Messages;
import com.alibaba.dashscope.threads.messages.TextMessageParam;
import com.alibaba.dashscope.threads.messages.ThreadMessage;
public class Main {
public static void main(String[] args) throws ApiException, NoApiKeyException, InputRequiredException, InvalidateParameter, InterruptedException {
// create a message to thread
Messages messages = new Messages();
TextMessageParam param = TextMessageParam.builder()
// Set the API key using an environment variable. If an environment variable is not set, replace the following line with .apiKey("sk-xxx") and your Model Studio API key.
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.role("user")
.content("How to make delicious beef and potato stew?")
.build();
ThreadMessage message = messages.create("threadId", param);
}
}
from dashscope import Messages
import dashscope
import os
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
msg = Messages.create(
'the_thread_id',
# Set the API key using an environment variable. If an environment variable is not set, replace the following line with api_key="sk-xxx" and your Model Studio API key.
api_key=os.getenv("DASHSCOPE_API_KEY"),
content='The message content.',
role='user',
metadata={'key': 'value'}
)
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.InvalidateParameter;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.threads.messages.Messages;
import com.alibaba.dashscope.threads.messages.TextMessageParam;
import com.alibaba.dashscope.threads.messages.ThreadMessage;
import com.alibaba.dashscope.utils.Constants;
public class Main {
static {
Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
}
public static void main(String[] args) throws ApiException, NoApiKeyException, InputRequiredException, InvalidateParameter, InterruptedException {
// create a message to thread
Messages messages = new Messages();
TextMessageParam param = TextMessageParam.builder()
// Set the API key using an environment variable. If an environment variable is not set, replace the following line with .apiKey("sk-xxx") and your Model Studio API key.
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.role("user")
.content("How to make delicious beef and potato stew?")
.build();
ThreadMessage message = messages.create("threadId", param);
}
}
Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
thread_id | string | - | O ID do thread. |
content | string | - | O conteúdo da mensagem. |
role | str | 'user' | A função da mensagem. Valor padrão: user. |
metadata | Dict | None | As informações de chave-valor associadas à mensagem. |
workspace | string | None | O ID do Workspace do Alibaba Cloud Model Studio. Este parâmetro é obrigatório apenas quando a |
api_key | string | None | A chave de API do Alibaba Cloud Model Studio. Recomendamos que você configure a chave de API como uma variável de ambiente. |
{
"id": "message_05494921-a646-484e-85fc-76329acba842",
"object": "thread.message",
"created_at": 1711345341301,
"thread_id": "thread_f1e7737e-b045-479f-99d1-510db49d535b",
"incomplete_details": {},
"completed_at": null,
"incomplete_at": null,
"assistant_id": "",
"run_id": "",
"file_ids": [],
"role": "user",
"content": [
{
"type": "text",
"text": {
"value": "sdhafjdasf",
"annotations": []
}
}
],
"metadata": {
"key": "value"
},
"name": "",
"plugin_call": {},
"tool_calls": [],
"status": "",
"status_code": 200,
"request_id": "631de0b3-7e50-9c9e-8444-0924d1b7e7a5"
}
Nome do campo | Tipo do campo | Descrição do campo |
|---|---|---|
status_code | int | O código de status HTTP da chamada. O valor 200 indica que a chamada foi bem-sucedida. Outros valores indicam falha na chamada. |
id | string | O ID da mensagem, que é uma string UUID. |
content | List[dict] | O conteúdo da mensagem. |
content.type | string | O tipo de conteúdo, como texto. |
content.text | dict | Conteúdo |
content.text.value | string | Valor textual do conteúdo |
metadata | Dict | As informações de chave-valor associadas a esta mensagem. |
tool_calls | Dict | As informações de chamada de ferramenta. |
plugin_call | Dict | As informações de chamada de plugin. |
created_at | timestamp | O momento em que o assistente foi criado. |
gmt_created | datetime | 2024-03-22 17:12:31 |
gmt_modified | datetime | 2024-03-22 17:12:31 |
code | string | Indica que a solicitação falhou. Este parâmetro especifica o código de erro. É ignorado se a solicitação for bem-sucedida. Apenas Python. |
message | string | Indica que a solicitação falhou. Este parâmetro fornece informações detalhadas sobre a falha. É ignorado se a solicitação for bem-sucedida. Apenas Python. |
Listar mensagens
- HTTP
- SDK
curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/threads/thread_e99a9fe7-0433-426f-98ad-a5139c36579c/messages?limit=2&order=desc' \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY"
Nome do parâmetro | Descrição | Tipo de parâmetro | Obrigatório |
|---|---|---|---|
thread id | O ID do thread ao qual a mensagem é enviada. | string | Sim |
limit | Quantidade de mensagens | integer | Não |
order | A ordem de classificação por hora de criação: | string | Não (Padrão: |
{
"object": "list",
"data": [
{
"id": "message_f1933671-19e1-4162-ad25-7326165123e1",
"object": "thread.message",
"created_at": 1711508433283,
"thread_id": "thread_e99a9fe7-0433-426f-98ad-a5139c36579c",
"assistant_id": "",
"run_id": "",
"role": "user",
"content": [
{
"type": "text",
"text": {
"value": "Who are you",
"annotations": []
}
}
],
"metadata": {},
"name": "",
"plugin_call": {},
"tool_calls": [],
"status": ""
}
],
"first_id": "message_f1933671-19e1-4162-ad25-7326165123e1",
"last_id": "message_f1933671-19e1-4162-ad25-7326165123e1",
"has_more": false,
"request_id": "78f7d607-4a9a-90c6-8040-d3f81c84d60a"
}
- Uma lista contendo múltiplas mensagens.
from dashscope import Messages
import os
messages = Messages.list(
'thread_id',
# Set the API key using an environment variable. If an environment variable is not set, replace the following line with api_key="sk-xxx" and your Model Studio API key.
api_key=os.getenv("DASHSCOPE_API_KEY"),
limit=1,
order='desc'
)
import com.alibaba.dashscope.common.GeneralListParam;
import com.alibaba.dashscope.common.ListResult;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.InvalidateParameter;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.threads.messages.Messages;
import com.alibaba.dashscope.threads.messages.ThreadMessage;
public class Main {
public static void main(String[] args) throws ApiException, NoApiKeyException, InputRequiredException, InvalidateParameter, InterruptedException {
Messages messages = new Messages();
// Set the API key using an environment variable. If an environment variable is not set, replace the following line with .apiKey("sk-xxx") and your Model Studio API key.
GeneralListParam listThreadMessages = GeneralListParam.builder()
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.build();
ListResult<ThreadMessage> message = messages.list("threadId", listThreadMessages);
}
}
from dashscope import Messages
import dashscope
import os
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
messages = Messages.list(
'thread_id',
# Set the API key using an environment variable. If an environment variable is not set, replace the following line with api_key="sk-xxx" and your Model Studio API key.
api_key=os.getenv("DASHSCOPE_API_KEY"),
limit=1,
order='desc'
)
import com.alibaba.dashscope.common.GeneralListParam;
import com.alibaba.dashscope.common.ListResult;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.InvalidateParameter;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.threads.messages.Messages;
import com.alibaba.dashscope.threads.messages.ThreadMessage;
import com.alibaba.dashscope.utils.Constants;
public class Main {
static {
Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
}
public static void main(String[] args) throws ApiException, NoApiKeyException, InputRequiredException, InvalidateParameter, InterruptedException {
Messages messages = new Messages();
// Set the API key using an environment variable. If an environment variable is not set, replace the following line with .apiKey("sk-xxx") and your Model Studio API key.
GeneralListParam listThreadMessages = GeneralListParam.builder()
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.build();
ListResult<ThreadMessage> message = messages.list("threadId", listThreadMessages);
}
}
Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
thread_id | string | - | O ID do thread a ser consultado. |
limit | int | None | O número de mensagens a serem recuperadas. |
order | string | None | A ordem de classificação por |
workspace | string | None | O ID do Workspace do Alibaba Cloud Model Studio, obrigatório apenas quando a |
api_key | string | None | A chave de API do Alibaba Cloud Model Studio. Recomendamos que você defina a chave de API como uma variável de ambiente. |
Nome do campo | Tipo do campo | Descrição do campo |
|---|---|---|
has_more | boolean | Indica se há mais mensagens disponíveis para recuperação. |
last_id | string | O ID da última mensagem na lista retornada. |
first_id | string | O ID da primeira mensagem na lista retornada. |
data | list[Message] | Uma lista de objetos Message. |
Recuperar uma mensagem
- HTTP
- SDK
curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/threads/thread_e99a9fe7-0433-426f-98ad-a5139c36579c/messages/message_ea26d29d-4509-490e-98e9-9f6238bd821b' \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY"
Nome do parâmetro | Descrição | Tipo de parâmetro | Obrigatório |
|---|---|---|---|
thread id | O ID do thread da mensagem a ser recuperada. | string | Sim |
message_id | O ID da mensagem a ser recuperada. | string | Sim |
{
"id": "message_ea26d29d-4509-490e-98e9-9f6238bd821b",
"object": "thread.message",
"created_at": 1711508622598,
"thread_id": "thread_e99a9fe7-0433-426f-98ad-a5139c36579c",
"assistant_id": "",
"run_id": "",
"role": "user",
"content": [
{
"type": "text",
"text": {
"value": "Hello",
"annotations": []
}
}
],
"metadata": {},
"name": "",
"plugin_call": {},
"tool_calls": [],
"status": "",
"request_id": "4d5ce962-91c3-9edb-87f7-00bbf985135e"
}
- id: ID da Mensagem
- request_id: o ID da solicitação.
from dashscope import Messages
import os
message = Messages.retrieve(
'message_id',
# Set the API key using an environment variable. If an environment variable is not set, replace the following line with api_key="sk-xxx" and your Model Studio API key.
api_key=os.getenv("DASHSCOPE_API_KEY"),
thread_id='thread_id'
)
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.InvalidateParameter;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.threads.messages.Messages;
import com.alibaba.dashscope.threads.messages.ThreadMessage;
public class Main {
public static void main(String[] args) throws ApiException, NoApiKeyException, InputRequiredException, InvalidateParameter, InterruptedException {
Messages messages = new Messages();
// Set the API key using an environment variable. If an environment variable is not set, replace the following line with .apiKey("sk-xxx") and your Model Studio API key.
String apiKey = System.getenv("DASHSCOPE_API_KEY");
ThreadMessage message = messages.retrieve("threadId", "messageId", apiKey);
}
}
from dashscope import Messages
import dashscope
import os
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
message = Messages.retrieve(
'message_id',
# Set the API key using an environment variable. If an environment variable is not set, replace the following line with api_key="sk-xxx" and your Model Studio API key.
api_key=os.getenv("DASHSCOPE_API_KEY"),
thread_id='thread_id'
)
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.InvalidateParameter;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.threads.messages.Messages;
import com.alibaba.dashscope.threads.messages.ThreadMessage;
import com.alibaba.dashscope.utils.Constants;
public class Main {
static {
Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
}
public static void main(String[] args) throws ApiException, NoApiKeyException, InputRequiredException, InvalidateParameter, InterruptedException {
Messages messages = new Messages();
// Set the API key using an environment variable. If an environment variable is not set, replace the following line with .apiKey("sk-xxx") and your Model Studio API key.
String apiKey = System.getenv("DASHSCOPE_API_KEY");
ThreadMessage message = messages.retrieve("threadId", "messageId", apiKey);
}
}
Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
message_id | string | - | O ID da mensagem a ser consultada. |
thread_id | string | - | O ID do thread ao qual a mensagem pertence. |
workspace | string | None | O ID do Workspace do Alibaba Cloud Model Studio. Este parâmetro é obrigatório apenas quando a api_key for uma Chave de API de sub-workspace. |
api_key | string | None | A chave de API do Alibaba Cloud Model Studio. Recomendamos que você configure a chave de API como uma variável de ambiente. |
Modificar uma mensagem
- HTTP
- SDK
curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/threads/thread_e99a9fe7-0433-426f-98ad-a5139c36579c/messages/message_ea26d29d-4509-490e-98e9-9f6238bd821b' \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--data '{
"metadata": {
"modified": "true",
"user": "abc123"
}
}'
Nome do parâmetro | Parâmetros de entrada | Tipo de parâmetro | Obrigatório |
|---|---|---|---|
thread_id | O ID do thread a ser modificado. | string | Sim |
message_id | O ID da mensagem a ser modificada. | string | Sim |
metadata | Os metadados. | dict |
{
"id": "message_ea26d29d-4509-490e-98e9-9f6238bd821b",
"object": "thread.message",
"created_at": 1711508622598,
"thread_id": "thread_e99a9fe7-0433-426f-98ad-a5139c36579c",
"incomplete_details": {},
"completed_at": null,
"incomplete_at": null,
"assistant_id": "",
"run_id": "",
"file_ids": [],
"role": "user",
"content": [
{
"type": "text",
"text": {
"value": "Hello",
"annotations": []
}
}
],
"metadata": {
"modified": "true",
"user": "abc123"
},
"name": "",
"plugin_call": {},
"tool_calls": [],
"status": "",
"request_id": "7877b011-cb94-9df1-9add-dc42b7d611f6"
}
- id: ID da Mensagem
- request_id: o ID da solicitação.
from dashscope import Messages
import os
thread = Messages.update(
'message_id',
# Set the API key using an environment variable. If an environment variable is not set, replace the following line with api_key="sk-xxx" and your Model Studio API key.
api_key=os.getenv("DASHSCOPE_API_KEY"),
thread_id='the_message_thread_id',
metadata={'key': 'value'}
)
import java.util.Collections;
import com.alibaba.dashscope.common.UpdateMetadataParam;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.InvalidateParameter;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.threads.messages.Messages;
public class Main {
public static void main(String[] args) throws ApiException, NoApiKeyException, InputRequiredException, InvalidateParameter, InterruptedException {
Messages messages = new Messages();
// Set the API key using an environment variable. If an environment variable is not set, replace the following line with .apiKey("sk-xxx") and your Model Studio API key.
UpdateMetadataParam updateMetadataParam = UpdateMetadataParam.builder()
.metadata(Collections.singletonMap("key", "value"))
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.build();
messages.update("thread_id", "message_Id", updateMetadataParam);
}
}
from dashscope import Messages
import dashscope
import os
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
thread = Messages.update(
'message_id',
# Set the API key using an environment variable. If an environment variable is not set, replace the following line with api_key="sk-xxx" and your Model Studio API key.
api_key=os.getenv("DASHSCOPE_API_KEY"),
thread_id='the_message_thread_id',
metadata={'key': 'value'}
)
import java.util.Collections;
import com.alibaba.dashscope.common.UpdateMetadataParam;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.InvalidateParameter;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.threads.messages.Messages;
import com.alibaba.dashscope.utils.Constants;
public class Main {
static {
Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
}
public static void main(String[] args) throws ApiException, NoApiKeyException, InputRequiredException, InvalidateParameter, InterruptedException {
Messages messages = new Messages();
// Set the API key using an environment variable. If an environment variable is not set, replace the following line with .apiKey("sk-xxx") and your Model Studio API key.
UpdateMetadataParam updateMetadataParam = UpdateMetadataParam.builder()
.metadata(Collections.singletonMap("key", "value"))
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.build();
messages.update("thread_id", "message_Id", updateMetadataParam);
}
}
Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
message_id | string | - | O ID da mensagem a ser atualizada. |
thread_id | string | - | O ID do thread ao qual a mensagem a ser atualizada pertence. |
metadata | Dict | None | As informações associadas ao thread. |
workspace | string | None | O ID do Workspace do Alibaba Cloud Model Studio, obrigatório apenas quando a api_key for uma Chave de API de sub-workspace. |
api_key | string | None | A chave de API do Alibaba Cloud Model Studio. Recomendamos que você configure a chave de API como uma variável de ambiente. |