Use os LLMs do Model Studio com o Realtime Compute for Apache Flink para criar pipelines de análise de IA em tempo real.
Informações básicas
O Model Studio é uma plataforma para criação de aplicações com LLMs. Ele se integra ao Realtime Compute for Apache Flink , permitindo combinar as capacidades dos LLMs com pipelines de dados em tempo real do Flink. Dois tipos principais de modelos são suportados:
-
Modelo chat/completions: LLM voltado para geração de diálogos e compreensão de texto, usado em sistemas de análise de sentimentos, reconhecimento de intenção e perguntas e respostas.
Análise de sentimentos: Classifica comentários de redes sociais em tempo real como positivos, negativos ou neutros.
Atendimento ao cliente inteligente: Viabiliza interações em linguagem natural para sistemas automatizados de atendimento.
Moderação de conteúdo: Identifica conteúdo sensível ou violações de políticas em textos para auditorias de segurança.
-
Modelo de embedding: Converte texto em representações vetoriais de alta dimensão para busca semântica, sistemas de recomendação e construção de grafos de conhecimento.
Busca semântica: Vetoriza descrições de produtos ou consultas de usuários para buscar por relevância.
Sistemas de recomendação: Descobre associações entre interesses de usuários e características de produtos por meio da vetorização de texto.
Grafo de conhecimento: Transforma texto não estruturado em vetores para extração de conhecimento e modelagem de relacionamentos.
Pré-requisitos
Workspace do Flink ativado. Ativar o Realtime Compute for Apache Flink.
Workspace do Model Studio ativado com acesso de rede ao console de desenvolvimento do Flink. Acessar a API de um modelo ou aplicação no Model Studio via rede privada.
Se você acessar o Model Studio por nome de domínio, registre-o no console de desenvolvimento do Flink. Gerenciar nomes de domínio.
Limitações
Este recurso tem suporte apenas no Ververica Runtime (VVR) 11.1 ou superior.
Etapa 1: Registrar um modelo do Model Studio
Registre um modelo conforme descrito em Configurar um modelo.
Modelo Chat/completions
O exemplo de SQL a seguir registra o modelo qwen-turbo:
CREATE MODEL ai_analyze_sentiment
INPUT (`input` STRING)
OUTPUT (`content` STRING)
WITH (
'provider'='bailian',
'endpoint'='<base_url>/compatible-mode/v1/chat/completions', -- The endpoint for chat/completions model tasks.
'api-key' = '<YOUR KEY>',
'model'='qwen-turbo', -- The Qwen-turbo model.
'system-prompt' = 'Classify the text below into one of the following labels: [positive, negative, neutral, mixed]. Output only the label.'
);
Substitua <base_url> no valor do endpoint conforme o método de acesso:
Acesso pela internet: substitua
<base_url>porhttps://dashscope-intl.aliyuncs.com.-
Acesso por rede privada VPC: substitua
<base_url>porhttps://vpc-ap-southeast-1.dashscope.aliyuncs.com.NotaO parâmetro
endpointsuporta apenas o protocolo HTTPS.
Modelo de Embedding
O exemplo de SQL abaixo registra o modelo text-embedding-v3:
CREATE MODEL embedding_model
INPUT (`input` STRING)
OUTPUT (`embeddings` ARRAY<FLOAT>)
WITH (
'provider'='bailian',
'endpoint'='https://dashscope.aliyuncs.com/compatible-mode/v1/embeddings', -- The endpoint for embedding model tasks.
'api-key' = '<YOUR KEY>',
'model'='text-embedding-v3' -- The text-embedding-v3 model.
);
Etapa 2: Criar um job
Crie um rascunho de job de streaming SQL. Jobs do Flink SQL.
Etapa 3: Escrever um job SQL para análise com LLM
Modelo Chat/completions
Chame o modelo registrado ai_analyze_sentiment com ML_PREDICT para analisar sentimentos em críticas de filmes.
O operador ML_PREDICT está sujeito aos limites de taxa do Model Studio. Ao atingir esses limites, ocorre backpressure e o operador ML_PREDICT torna-se o gargalo. Limitações severas podem causar timeouts no operador e reinícios do job. Consulte os limites específicos de cada modelo em Limites de QPS e tokens. Entre em contato com seu gerente de contas para solicitar aumentos de limite.
Copie este SQL para o editor.
-- Create a temporary sink table.
CREATE TEMPORARY TABLE print_sink(
id BIGINT,
movie_name VARCHAR,
predict_label VARCHAR,
actual_label VARCHAR
) WITH (
'connector' = 'print', -- Use the print connector.
'logger' = 'true' -- Display the results in the console.
);
-- Create a temporary data view to construct test data.
-- | id | movie_name | comment | actual_label |
-- | 1 | Her Story | My favorite part was when the kid guessed the sounds. It is one of the most romantic narratives I have seen in movies. Very gentle and loving. | POSITIVE |
-- | 2 | The Dumpling Queen | Unremarkable. | NEGATIVE |
CREATE TEMPORARY VIEW movie_comment(id, movie_name, user_comment, actual_label)
AS VALUES (1, 'Her Story', 'My favorite part was when the kid guessed the sounds. It is one of the most romantic narratives I have seen in movies. Very gentle and loving.', 'positive'), (2, 'The Dumpling Queen', 'Unremarkable.', 'negative');
INSERT INTO print_sink
SELECT id, movie_name, content as predict_label, actual_label
FROM ML_PREDICT(
TABLE movie_comment,
MODEL ai_analyze_sentiment, -- The registered Qwen qwen-turbo model.
DESCRIPTOR(user_comment));
Modelo de Embedding
Chame o embedding_model registrado com ML_PREDICT para gerar embeddings das críticas de filmes e gravar os resultados no Milvus (visualização pública).
O operador ML_PREDICT está sujeito aos limites de taxa do Model Studio. Ao atingir esses limites, ocorre backpressure e o operador ML_PREDICT torna-se o gargalo. Limitações severas podem causar timeouts no operador e reinícios do job. Consulte os limites específicos de cada modelo em Limites de QPS e tokens. Entre em contato com seu gerente de contas para solicitar aumentos de limite.
Copie este SQL para o editor.
-- Create a temporary sink table named milvus_sink.
CREATE TEMPORARY TABLE milvus_sink
(
id STRING,
movie_name STRING,
user_comment STRING,
embeddings ARRAY<FLOAT>,
PRIMARY KEY (id) NOT ENFORCED
)
WITH (
'connector' = 'milvus',
'endpoint' = '<YOUR-ENDPOINT>',
'port' = '<YOUR-PORT>',
'userName' = '<YOUR-USERNAME>',
'password' = '<YOUR-PASSWORD>',
'databaseName' = 'default',
'collectionName' = 'movie-comment-embeddings'
);
-- Create a temporary data view to construct test data.
-- | id | movie_name | comment |
-- | 1 | Her Story | My favorite part was when the kid guessed the sounds. It is one of the most romantic narratives I have seen in movies. Very gentle and loving. |
-- | 2 | The Dumpling Queen | Unremarkable. |
CREATE TEMPORARY VIEW movie_comment(id, movie_name, user_comment)
AS VALUES ('1', 'Her Story', 'My favorite part was when the kid guessed the sounds. It is one of the most romantic narratives I have seen in movies. Very gentle and loving.'), ('2', 'The Dumpling Queen', 'Unremarkable.');
INSERT INTO
milvus_sink
SELECT
id,
movie_name,
user_comment,
embeddings
FROM
ML_PREDICT (
TABLE movie_comment,
MODEL embedding_model, -- The registered text-embedding-v3 model.
DESCRIPTOR (user_comment)
);
Etapa 4: Implantar e iniciar o job
Implante e inicie o job. Jobs do Flink SQL.
Etapa 5: Visualizar os resultados da análise
Modelo Chat/completions
Verifique se o status do job é FINISHED.
No console de , acesse Deployments e clique em no job desejado.
Na aba Logs, clique em na subaba Task Managers e selecione o current TaskManager.
-
Clique em Log e pesquise por PrintSinkOutputWriter.
O valor de
predict_labeldeve corresponder aoactual_label.Por exemplo,
+I[1, Her Story, positive, positive]e+I[2, The Dumpling Queen, negative, negative]confirmam que as previsões correspondem aos rótulos reais.
Documentos relacionados
Instruções de Linguagem de Definição de Dados (DDL) para modelos de IA: Configurar um modelo
Funções de IA: ML_PREDICT
Serviço de busca vetorial: Milvus (visualização pública)