Após desenvolver um fluxo de aplicação, implante-o como um serviço Elastic Algorithm Service (EAS). O EAS oferece Auto Scaling e monitoramento abrangente de operações e manutenção, permitindo que sua aplicação responda com flexibilidade a mudanças e ao crescimento dos negócios.
Pré-requisitos
Crie e depure um fluxo de aplicação. Consulte Desenvolvimento de fluxos de aplicação.
Implantar um fluxo de aplicação
Acesse o LangStudio e selecione um workspace. Na aba Application Flow, clique em um fluxo de aplicação já depurado e, em seguida, clique em Deploy no canto superior direito. Certifique-se de iniciar o runtime antes da implantação. Os principais parâmetros estão descritos abaixo.

|
Parâmetro |
Descrição |
|
Informações de recursos |
|
|
Tipo de recurso |
Selecione recursos públicos ou um grupo de recursos dedicados criado anteriormente. |
|
Instâncias |
Defina o número de instâncias do serviço. Para ambientes de produção, configure múltiplas instâncias para reduzir o risco de ponto único de falha. |
|
Recursos de implantação |
Se o fluxo de aplicação for usado apenas para orquestração de fluxos de negócios, selecione recursos de CPU adequados conforme a complexidade do fluxo. Recursos de CPU geralmente são mais econômicos que recursos de GPU. Após a implantação, aplica-se o faturamento de recursos. Consulte Faturamento do Elastic Algorithm Service (EAS). |
|
VPC: O fluxo de aplicação é implantado como um serviço EAS. Para garantir o acesso do cliente, selecione uma VPC. Por padrão, os serviços EAS não acessam a internet. Para habilitar o acesso à internet, configure uma VPC com conectividade externa. Consulte Acesso do EAS a recursos públicos e privados. Nota
Se um fluxo de aplicação utilizar conexão com banco de dados vetorial (como Milvus), certifique-se de que a VPC configurada corresponda à VPC da instância do banco de dados vetorial ou que ambas estejam interconectadas. |
|
|
Histórico |
|
|
Ativar histórico |
Aplica-se apenas a fluxos de aplicação do tipo chat. Quando ativado, o sistema armazena e transmite múltiplas rodadas de histórico de conversa. Utilize em conjunto com o parâmetro de cabeçalho da requisição. |
|
Armazenamento de histórico |
O armazenamento local não suporta implantação com múltiplas instâncias. Para serviços em produção, utilize armazenamento externo, como ApsaraDB RDS. Para mais informações, consulte Apêndice: Histórico de chat. Importante
Com o armazenamento local, não há suporte para implantação com múltiplas instâncias nem para dimensionamento de uma única instância para várias. Caso contrário, o histórico de chat pode não funcionar corretamente. |
|
Ativar rastreamento: Ao ativar esta opção, é possível visualizar registros de rastreamento para avaliar o desempenho do fluxo de aplicação após a implantação. |
|
|
Funções e permissões: No fluxo de aplicação, se você utilizar um banco de dados vetorial Faiss (selecione um banco de dados vetorial Faiss ou Milvus ao criar uma base de conhecimento) ou "Alibaba Cloud IQS Search" (necessário para o modelo de chatbot baseado em busca web IQS), será necessário selecionar uma função apropriada. |
|
Para mais informações sobre configurações de parâmetros, consulte Implantação personalizada.
Depuração online
Chamar o serviço
Depuração online
Após a implantação bem-sucedida, você será redirecionado para o PAI-EAS. Na aba Online Debugging, configure e envie uma requisição. A chave no corpo da requisição deve corresponder ao valor do parâmetro Chat Input no Start Node. Este tópico utiliza o campo padrão question.

Fazer chamadas de API
-
Na aba Overview, obtenha o endpoint e o token.

-
Envie uma requisição de API.
Chame o serviço no modo simples ou completo. A tabela a seguir descreve as diferenças.
Propriedade
Modo Simples
Modo Completo
Caminho da requisição
<Endpoint>/<Endpoint>/runDescrição do recurso
Retorna diretamente os resultados de saída do fluxo de aplicação.
Retorna uma estrutura complexa, incluindo status dos nós, mensagens de erro e saídas do fluxo de aplicação.
Cenário
-
Indicado quando apenas a saída final é necessária e os detalhes internos do processamento não são relevantes.
-
Ideal para consultas ou operações simples que exigem obtenção rápida de resultados.
-
Recomendado quando é necessário compreender detalhadamente o processo de execução do fluxo, incluindo o status de cada nó e possíveis mensagens de erro.
-
Adequado para depuração, monitoramento ou análise da execução do fluxo de aplicação.
Vantagens
Simples de usar, sem necessidade de analisar estruturas complexas.
-
Fornece informações abrangentes para entender profundamente o processo de execução do fluxo de aplicação.
-
Facilita a solução de problemas e a otimização do desempenho do fluxo.
Modo simples
Comando cURL
Código Python
Modo completo
O LangStudio suporta Server-Sent Events (SSE), permitindo a saída do status, mensagens de erro e mensagens de resultado de cada nó durante a execução do fluxo de aplicação. Também é possível personalizar o conteúdo de
node_run_infosnos eventos. O exemplo a seguir utiliza a depuração online. Adicione/runao endereço de chamada e edite o corpo da requisição:
A tabela a seguir descreve os parâmetros do corpo da requisição.
Nome do campo
Tipo
Valor padrão
Descrição
inputs
Mapping[str, Any]
None
Dicionário de dados de entrada. As chaves devem corresponder aos nomes dos campos de entrada definidos no fluxo de aplicação. Se o fluxo não tiver entradas, este campo será ignorado.
stream
bool
True
Controla o formato da resposta. Valor padrão: Dinâmico. Valores válidos:
-
True: Responde com streaming SSE. O Content-Type no cabeçalho da resposta é
text/event-stream, e os dados são retornados no formato DataOnly, divididos em diferentes eventos: RunStarted, NodeUpdated, RunOutput e RunTerminated. Para mais informações, consulte as tabelas abaixo. -
False: Responde com um único corpo JSON. O Content-Type no cabeçalho da resposta é
application/json. Consulte as informações de resposta em Depuração online.
response_config
Dict[str, Any]
-
Controla as informações detalhadas dos nós incluídas na resposta de streaming (quando stream=True).
∟ include_node_description
bool
False
(Dentro de response_config) Define se as descrições dos nós devem ser incluídas no fluxo de eventos SSE.
∟ include_node_display_name
bool
False
(Dentro de response_config) Define se os nomes de exibição dos nós devem ser incluídos no fluxo de eventos SSE.
∟ include_node_output
bool
False
(Dentro de response_config) Define se as saídas dos nós devem ser incluídas no fluxo de eventos SSE.
∟ exclude_nodes
List[str]
[]
(Dentro de response_config) Lista de nomes de nós a serem excluídos do fluxo de eventos SSE.
Os dados retornados são divididos em diferentes eventos: RunStarted, NodeUpdated, RunOutput e RunTerminated:
-
Método de chamada compatível com OpenAI
Fluxos de aplicação do tipo chat implantados suportam chamadas compatíveis com OpenAI e podem ser utilizados por clientes que suportam OpenAI.
Método baseado na API OpenAI
Este exemplo demonstra chamadas com streaming usando comandos cURL. Veja os exemplos de requisição e resposta:
Exemplo de requisição:
curl --location '<Endpoint>/v1/chat/completions' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "default",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Who are you?"
}
],
"stream":true
}'
A tabela a seguir descreve os parâmetros da requisição.
|
Parâmetro |
Descrição |
|
--location '<Endpoint>/v1/chat/completions' |
URL de destino da requisição. Substitua |
|
--header "Authorization: Bearer $DASHSCOPE_API_KEY" |
Cabeçalho HTTP. Substitua |
|
"model": "default" |
Nome do modelo, fixo como |
|
"stream":true |
Especifica se as informações retornadas serão em streaming. Observação: O streaming é suportado apenas quando um nó LLM é usado como nó de saída do fluxo de aplicação (um nó LLM é a entrada direta para o nó final). |
Exemplo de resposta:
data: {"choices":[{"delta":{"content":"","role":"assistant"},"index":0,"logprobs":null,"finish_reason":null}],"object":"chat.completion.chunk","usage":null,"created":1715931028,"system_fingerprint":null,"model":"qwen-plus","id":"chatcmpl-3bb05cf5cd819fbca5f0b8d67a025022"}
data: {"choices":[{"finish_reason":null,"delta":{"content":"I am"},"index":0,"logprobs":null}],"object":"chat.completion.chunk","usage":null,"created":1715931028,"system_fingerprint":null,"model":"qwen-plus","id":"chatcmpl-3bb05cf5cd819fbca5f0b8d67a025022"}
data: {"choices":[{"delta":{"content":"a large"},"finish_reason":null,"index":0,"logprobs":null}],"object":"chat.completion.chunk","usage":null,"created":1715931028,"system_fingerprint":null,"model":"qwen-plus","id":"chatcmpl-3bb05cf5cd819fbca5f0b8d67a025022"}
data: {"choices":[{"delta":{"content":"language model"},"finish_reason":null,"index":0,"logprobs":null}],"object":"chat.completion.chunk","usage":null,"created":1715931028,"system_fingerprint":null,"model":"qwen-plus","id":"chatcmpl-3bb05cf5cd819fbca5f0b8d67a025022"}
data: {"choices":[{"delta":{"content":"created by Alibaba Cloud"},"finish_reason":null,"index":0,"logprobs":null}],"object":"chat.completion.chunk","usage":null,"created":1715931028,"system_fingerprint":null,"model":"qwen-plus","id":"chatcmpl-3bb05cf5cd819fbca5f0b8d67a025022"}
data: {"choices":[{"delta":{"content":". I am called Qwen."},"finish_reason":null,"index":0,"logprobs":null}],"object":"chat.completion.chunk","usage":null,"created":1715931028,"system_fingerprint":null,"model":"qwen-plus","id":"chatcmpl-3bb05cf5cd819fbca5f0b8d67a025022"}
data: {"choices":[{"delta":{"content":""},"finish_reason":"stop","index":0,"logprobs":null}],"object":"chat.completion.chunk","usage":null,"created":1715931028,"system_fingerprint":null,"model":"qwen-plus","id":"chatcmpl-3bb05cf5cd819fbca5f0b8d67a025022"}
data: [DONE]
Integração com outros clientes
Este exemplo demonstra a integração com o ChatBox v1.13.4 na plataforma Windows.
Baixe e instale o Chatbox.
-
Abra o ChatBox e configure o nome do provedor de modelo, como LangStudio, conforme abaixo.

-
Selecione o provedor de modelo configurado e defina os parâmetros de requisição do serviço.

A tabela a seguir descreve os principais parâmetros.
Parâmetro
Descrição
API Mode
Fixo como
OpenAI API Compatible.API Key
Defina como o token do serviço implantado. Consulte Obter o endpoint e o token na aba Overview.
API Host
Defina como o endpoint do serviço implantado (consulte Obter o endpoint e o token na aba Overview) e adicione o sufixo
/v1ao final. Este exemplo usa um endpoint de internet. Portanto, o host da API éhttp://langstudio-20250319153409-xdcp.115770327099****.cn-hangzhou.pai-eas.aliyuncs.com/v1.API Path
Fixo como
/chat/completions.Model
Clique em New e insira um Model ID personalizado, como qwen3-8b.
-
Chame o serviço implantado na caixa de diálogo de chat.

Visualizar registros de rastreamento
Após chamar um serviço, o sistema gera automaticamente um registro de rastreamento. Na aba Tracing Analysis, localize o registro de rastreamento desejado e clique em View Trace na coluna Actions.

Os dados de rastreamento permitem visualizar as informações de entrada e saída de cada nó no fluxo de aplicação, como os resultados de recuperação do banco de dados vetorial ou as informações de entrada e saída do nó LLM.
Apêndice: Histórico de chat
Para fluxos de aplicação baseados em chat, o LangStudio oferece um recurso para armazenar o histórico de conversas de múltiplas rodadas. Você pode optar por usar armazenamento local ou externo para salvar o histórico de chat.
Tipos de armazenamento
Armazenamento local: O serviço utiliza o disco local para criar automaticamente um banco de dados SQLite chamado chat_history.db na instância EAS onde o fluxo de aplicação está implantado, a fim de salvar o histórico de chat. O caminho padrão de armazenamento é
/langstudio/flow/. Note que o armazenamento local não suporta implantação com múltiplas instâncias. Verifique regularmente o uso do disco local. Também é possível visualizar ou excluir o histórico de chat usando a API fornecida abaixo. Se uma instância EAS for removida, o histórico de chat relacionado também será apagado.Armazenamento externo: Suporta ApsaraDB RDS for MySQL. Para usar armazenamento externo, configure uma conexão RDS MySQL para armazenar o histórico de chat ao implantar um serviço. Para mais informações, consulte Configuração de conexão de serviço - Banco de dados. O serviço cria automaticamente tabelas com sufixo correspondente ao nome do serviço no banco de dados RDS MySQL configurado. Por exemplo, o serviço cria a tabela
langstudio_chat_session_<Service name>para armazenar a sessão de chat e a tabelalangstudio_chat_history_<Service name>para armazenar o histórico de chat.
Suporte a sessão ou usuário
Cada requisição de chat para um fluxo de aplicação é stateless. Se desejar que múltiplas requisições sejam tratadas como a mesma conversa, configure manualmente o cabeçalho da requisição. Para informações sobre como fazer chamadas, consulte Fazer chamadas de API.
|
Cabeçalho da requisição |
Tipo de dado |
Descrição |
Observação |
|
Chat-Session-Id |
String |
ID da sessão. Para cada requisição de serviço, o sistema atribui automaticamente um identificador exclusivo à sessão para distinguir entre diferentes sessões e o retorna através do campo |
IDs de sessão personalizados são suportados. Para garantir unicidade, um ID de sessão deve ter entre 32 e 255 caracteres e pode conter letras, dígitos, sublinhados (_), hífens (-) e dois pontos (:). |
|
Chat-User-Id |
String |
ID do usuário, que identifica o usuário ao qual o chat pertence. O sistema não atribui automaticamente um ID de usuário. IDs de usuário personalizados são suportados. |
- |
API de histórico de chat
O serviço de fluxo de aplicação também fornece operações de API para gerenciamento de dados de histórico de chat, permitindo visualizar e excluir esses dados facilmente. Obtenha o esquema completo da API enviando uma requisição GET para {Endpoint}/openapi.json. Esse esquema é construído com base no padrão Swagger. Para uma compreensão e exploração mais intuitivas dessas operações de API, recomendamos o uso do Swagger UI para realizar operações de visualização, tornando o processo mais simples e claro.