Um guia passo a passo usando os serviços de IA da CrewAI e da Capella
Neste tutorial, você aprenderá a criar um sistema sofisticado de IA multiagente que gera conteúdo criativo usando Serviços de IA do Couchbase Capella para armazenar dados, gerar embeddings usando modelos de embedding e inferência LLM. Criaremos um “Seinfeld Script Generator” que demonstra:
- Orquestração de vários agentes com CrewAI
- RAG (Retrieval Augmented Generation) com o Couchbase Query Vector Search
- Couchbase Capella Model Service para hospedar o modelo de incorporação e o LLM
- Serviço de vetorização do Couchbase para vetorizar dados armazenados no Couchbase
No final, você terá um sistema funcional em que vários agentes de IA especializados colaboram para gerar roteiros de TV autênticos.
O que são fluxos de trabalho multiagentes?
Os fluxos de trabalho com vários agentes envolvem vários agentes de IA trabalhando juntos, cada um especializado em uma tarefa específica, como em uma sala de roteiristas de TV.
Agentes e suas funções
| Agente | Função | Especialidade |
| Analisador de temas | Detalha o tema | Identifica ângulos cômicos |
| Arquiteto de terrenos | Projeta a estrutura da história | Cria tópicos A/B/C |
| Especialista em voz de personagens | Garante a autenticidade | Corresponde à fala do personagem |
| Escritor de diálogos | Escreve cenas | Diálogo + direção de palco |
| Revisor de qualidade | Editor final | Garante a consistência |
Por que os serviços de IA do Couchbase Capella?
Os serviços de IA do Couchbase Capella fornecem:
- Plataforma unificada: Banco de dados + Vetorização + Pesquisa + Modelos
- Vetorização para incorporação de documentos
- API de incorporação
- Inferência LLM
- Pesquisa vetorial para correspondência semântica
Configuração dos serviços do Couchbase Capella
Criar um cluster no Couchbase Capella
- Faça login em Couchbase Capella.
- Crie um novo cluster ou use um já existente. Observe que o cluster precisa executar a versão mais recente do Couchbase Server (8.0) com os serviços Data, Query, Index e Eventing.
- Crie um bucket (por exemplo, seinfeld)
- Crie um escopo (por exemplo, episódios) e coleta (por exemplo, roteiros) para seus dados
Habilitar serviços de IA
- Navegue até a seção AI Services (Serviços de IA) da Capella na interface do usuário.
- Implantar os modelos Embeddings e LLM
- Você precisa iniciar uma incorporação e um LLM para essa demonstração na mesma região que o cluster do Capella onde os dados serão armazenados.
- Para que essa demonstração funcione bem, você precisa implantar um modelo de linguagem grande (LLM) que tenha recursos de chamada de ferramentas, como mistralai/mistral-7b-instruct-v0.3. Para embeddings, você pode escolher um modelo como o nvidia/llama-3.2-nv-embedqa-1b-v2.
- Anote o URL do endpoint e gere chaves de API.
Para obter mais detalhes sobre o lançamento de modelos de IA, você pode consultar o documentação oficial.
Carregue seus dados
Para este tutorial, estamos usando o conjunto de dados público que contém todos os diálogos de Seinfeld de Kaggle. Podemos importar isso para nosso cluster do Couchbase Capella usando qualquer um dos modos de importação tais como cbimport ou a interface do usuário.
Seus documentos devem ter essa estrutura:
|
1 2 3 4 5 6 7 |
json { "Personagem": "JERRY", "Diálogo": "Qual é o problema com os amendoins das companhias aéreas?", "Temporada": 3, "EpisodeNo": 15, } |
Vetorização e criação de índice de pesquisa vetorial
Podemos usar o Serviço de Vetorização para dados estruturados para vetorizar os diálogos armazenados na coleção do Couchbase.
Nesse caso, como nossos dados já estão em um formato estruturado dentro do cluster do Couchbase, podemos usar o Vetorizar a partir do fluxo de trabalho de dados estruturados.
Precisamos incorporar o Diálogo em um novo campo, incorporação de diálogo.
Durante o fluxo de trabalho de vetorização, também podemos criar o altamente eficiente Índice de vetores em hiperescala para pesquisa vetorial com bons valores padrão.
Depois que o fluxo de trabalho for concluído, veremos um campo adicional em todos os documentos que contêm o incorporação de diálogo campo.
Criação do agente
Desenvolvemos vários agentes usando TripulaçãoAI para orquestrar os agentes. Cada agente tem uma função dedicada relacionada à tarefa geral de gerar o script. Os agentes se comunicam uns com os outros usando o contexto compartilhado para atingir o objetivo geral.
O código do agente pode ser encontrado neste Repositório do Github para referência.
Conceitos-chave
RAG (Retrieval Augmented Generation)
O RAG aprimora os resultados do LLM fornecendo contexto relevante de um banco de dados. Nesse caso, fornecemos diálogos semelhantes à entrada fornecida pelo usuário.
Colaboração entre agentes
Os agentes transmitem informações por meio do contexto da tarefa:
Integração dos serviços do modelo de IA da Capella
O Couchbase Capella AI Services fornece pontos de extremidade compatíveis com OpenAI que são usados pelos agentes. Para os embeddings, estamos usando o pacote LangChain OpenAI, pois ele é usado em associação com o Integração do LangChain com o Couchbase. Para o LLM, estamos usando o modelo Capella por meio de LiteLLM em CrewAI.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
python # Embeddings de langchain_openai importação Aberturas do OpenAIEmbeddings incorporações = Aberturas do OpenAIEmbeddings( openai_api_key=CAPELLA_EMBEDDING_KEY, openai_api_base=CAPELLA_ENDPOINT, modelo=NOME_DO_MODELO_DE_INCORPORAÇÃO, ) # LLM de crewai importação LLM lm = LLM( modelo=LLM_NAME, chave api=CAPELLA_LLM_KEY, base_url=CAPELLA_ENDPOINT, ) |
Testando-o
Entrada: Jerry recebe um alto-falante inteligente que ouve tudo errado
Saída:
Episódio # de Seinfeld: Jerry ganha um alto-falante inteligente que ouve tudo errado
**Título:** O alto-falante inteligente
—
### Cold Open - INT. APARTAMENTO DE JERRY
*(Jerry fica ao lado de seu novo alto-falante inteligente no balcão, tentando manter a paciência).
**JERRY:**
Toque “Take Five” de Dave Brubeck.
**FALANTE:**
Pedir cinco latas de descafeinado.
*(Jerry pisca, impassível.)
**JERRY:**
Bem, pelo menos meu vício em cafeína foi reconhecido.
*(Kramer entra em cena, com os olhos arregalados e agitando os braços).
**KRAMER:**
Jerry! Você precisa comprar um desses! É o futuro, amigo!
*(Elaine entra, com os braços cruzados, fazendo cara feia).
**ELAINE:**
Ele só me chamou de “Helen”. Helen! Quem é Helen?
*(George chama freneticamente da porta ao lado.)
**GEORGE (S.O.):**
Jerry, acho que ele está me espionando!
*(Jerry dá de ombros.)
**JERRY:**
Ótimo, agora a torradeira está tomando partido.
*(Ele se vira para a câmera.)
**JERRY:**
Para algo chamado “inteligente”, esse é o colega de quarto mais burro que já tive.
—
### Cena 2 - INT. APARTAMENTO DE JERRY
*(Jerry segura o telefone, cada vez mais irritado, e o alto-falante se senta inocentemente).
**JERRY:**
Definir lembrete: comprar leite.
**FALANTE:**
Tocando “Don't Cry for Me, Argentina”.”
**JERRY:**
Isso não é um lembrete. É uma traição musical.
*(Elaine entra em cena, com o olhar fixo).
**ELAINE:**
Me chamou de Helen novamente. Helen! Quem é a Helen?
**JERRY:**
Talvez ele esteja tentando lhe dar uma nova identidade.
**ELAINE:** *(sarcástico)*
Maravilhoso. Um programa de proteção a testemunhas via eletrônica.
*(Kramer entra orgulhoso, segurando uma engenhoca conectada ao alto-falante).
**KRAMER:**
Relaxar! A atualização de Kramer! Prevê o que você quer antes que você perceba!
**JERRY:** *(cético)*
Da última vez que você consertou algo, acabei com um show de fontes na minha sala de estar.
**KRAMER:**
Ei, arte!
—
### Cena 3 - INT. ESCRITÓRIO DE GEORGE
*(George caminha nervosamente, sussurrando ao telefone).
**GEORGE:**
É espionagem, Jerry! Encontrei gravações... conversas tramando contra mim!
*(Reproduz um clipe distorcido).
**GEORGE:**
Prova!
*(O colega de trabalho passa e sorri).
**TRABALHADOR:**
Está falando ao telefone de novo? Calma, George.
**GEORGE:**
Eles querem silêncio! É isso que eles querem!
—
### Cena 4 - INT. ESCRITÓRIO DE ELAINE
*(Elaine em uma chamada de vídeo; o locutor pronuncia errado.)
**FALANTE:**
Reproduzindo o audiolivro de “Helena de Troia”.
**ELAINE:** *(gritando)*
Não! Não é a Helen! Elaine!
*(Um colega de trabalho sussurra fora da tela).
**TRABALHADOR:**
O telefone dela está possuído ou o quê?
—
### Cena 5 - INT. APARTAMENTO DE JERRY - NOITE
*(Jerry está em um encontro; de repente, o alto-falante emite ruídos de cabras).
**DATA DO JERRY:**
O que foi isso?
**JERRY:**
Meu alto-falante inteligente... menos inteligente do que eu.
*(Elaine ouve o alto-falante chamar “Helen” nas proximidades, cruzando os braços).
**ELAINE:**
Helen ataca novamente.
*(Jerry e Elaine trocam um olhar.)
—
### Cena 6 - INT. APARTAMENTO DE JERRY
*(Kramer revela alto-falante modificado.)*
**KRAMER:**
Confie em mim! Esse bebê antecipa o que você quer!
*(Pressiona o botão; o alto-falante irrompe com balidos de cabras e anúncios aleatórios; as luzes piscam).
**JERRY:**
É ótimo. É uma casa mal-assombrada em um clube de jazz.
*(Elaine grita com o dispositivo; George entra frenético).
**GEORGE:**
Kramer! Você está envolvido! Isso é sabotagem!
**KRAMER:**
Não, apenas um pouco de caos para a criatividade!
*(O alto-falante toca a fita da conspiração de George no volume máximo).
**GEORGE:**
Não! A fita não!
*(As luzes se apagam; silêncio.)
—
### Finale - INT. CAFÉ DO MONK
*(O grupo se senta, exausto).
**JERRY:**
Para algo chamado “inteligente”, esse é o colega de quarto mais burro que já tive.
**ELAINE:**
Ele ainda me chama de Helen. Helen! Eu não conheço nenhuma Helen!
**GEORGE:**
Perdi meu emprego, meu par. Se ele ouvir mais uma vez, vou me mudar.
**Kramer:** *(sorrindo)*
Estou trabalhando na próxima versão. Ela será revolucionária!
**JERRY:** * *(para a câmera, seco)*
As revoluções nunca são silenciosas.
—
### Tag - INT. APARTAMENTO DE JERRY - NOITE
*(Jerry desconecta o alto-falante e suspira.)
**FALANTE:**
(estático) Adeus, Jerry.
*(Jerry olha para a câmera.)
**JERRY:**
Até mesmo os burros dizem adeus.
*(Fade out.)*
—
**Classificação de qualidade:** 9/10
**Notas:**
- As vozes dos personagens são verdadeiras: A sagacidade sardônica e seca de Jerry capta perfeitamente o humor observacional de Seinfeld sobre as falhas tecnológicas. A neurose paranoica de George se agrava de forma clássica. A indignação de Elaine com relação a nomes errados é pontual e divertidamente pessoal. O entusiasmo selvagem de Kramer diminui o caos de forma eficaz.
- Os fios da trama se entrelaçam de forma limpa e se resolvem com as crescentes falhas de comunicação que chegam ao ápice no fiasco da “atualização” de Kramer.
- As chamadas de atenção (“Helen!”, “É espionagem!” de George, a correção “revolucionária” de Kramer) são oportunas e ocorrem naturalmente.
- O humor é observacional, baseado em frustrações tecnológicas muito modernas, mas mundanas, evitando o pastelão ou piadas muito amplas.
- O ritmo das cenas é rápido, com duração normal, refletindo o ritmo clássico das sitcoms; as direções de palco indicam o tempo e as reações para maximizar as piadas.
- O diálogo foi aprimorado cada vez mais para obter mais clareza e piadas, mantendo o ritmo e a cadência clássicos de Seinfeld.
- A piada final e a cena de etiqueta refletem efetivamente o metacomentário de encerramento seco habitual de Seinfeld.
Esse episódio se encaixaria perfeitamente na série original, mostrando a resposta neurótica de cada personagem a um simples incômodo moderno que se tornou hilário e desproporcional.
Resumo
Neste tutorial, você aprendeu a:
- Crie um sistema de IA multiagente com o CrewAI
- Vetorizar dados usando fluxos de trabalho de vetorização do Couchbase
- Usar os serviços de IA do Couchbase Capella para embeddings e LLM
- Implementar o RAG com o Couchbase Vector Search (Hyperscale Index)
A combinação da plataforma de dados unificada do Couchbase com a estrutura multiagente do CrewAI cria aplicativos avançados de IA que podem gerar conteúdo de alta qualidade e contextualmente consciente.