Transcrições
1. O que é um agente de IA?: Então, vamos começar
entendendo o que é um agente de IA para tornar
as coisas o mais simples possível. Eu vou usar esse exemplo
prático. Aqui estou em Cage Pit e selecionei o GPT 3.5 Vou simplesmente fazer essa pergunta. Devo pegar um guarda-chuva e sair hoje na
Califórnia, ok. Então, vamos tentar isso e agora GPT três me
dirá, ou Ch GPT, para fornecer os conselhos mais precisos de
que eu precisaria para saber sua localização específica na Califórnia e a
previsão do tempo atual para o Então, acho que você aprendeu
no curso de engenharia rápida que uma das
principais limitações dos modelos de linguagem é que eles só geram respostas com base
nos dados nos quais foram treinados. Portanto, ele não tem acesso
a dados em tempo real. É por isso que não pode
responder à minha pergunta. Ele precisa saber o
tempo antes de me dizer
se eu preciso de
um guarda-chuva ou não Simples Agora, se fizermos a mesma pergunta
e formos para o GPT quatro Vamos fazer a mesma pergunta agora. E veja o que vai acontecer. GPT quatro ainda é um modelo de linguagem e
tem uma limitação, mas respondeu à minha pergunta O que aconteceu? Simplesmente, o que
eu fiz com o GPT quatro, se você entrar aqui e subir,
verá com a
navegação na web de Dale e algumas outras ferramentas Portanto, não é apenas um modelo de
linguagem aqui. É o modelo de linguagem. É o GPT quatro, mas combinado com algumas funções e ferramentas
externas Então, ficou o clima. Então, com base no clima, sugeriu
que
carregar um guarda-chuva pode não ser necessário e forneceu os recursos
do clima Entrei em contato com o Serviço
Meteorológico Nacional e, com base no resultado,
gerei a resposta. Essa é uma forma simples
de como os agentes de IA trabalham. Se você quiser definir um agente de
IA em termos simples, é um modelo de linguagem, além de algumas ferramentas e funções
externas. Esses dois são movidos
por uma técnica. Ele permite o modelo,
por favor, concentre-se. Ele permite que o modelo pense sobre a
pergunta ou a solicitação, entenda, talvez
se divida em tarefas e, partir de uma lista de ferramentas
às quais está atribuída, eu posso escolher a
ferramenta certa para a tarefa, ela gera o resultado
com
a ferramenta com a ação e usar a
saída da ação, novamente, no prompt para
gerar o resultado final. De alguma forma, ele imita a forma
como os humanos trabalham. Espero que você tenha entendido.
2. Configuração básica: Ok, amigos. Nesta palestra, criarei um
ambiente virtual para nosso projeto, instalarei o pacote Open AI e criarei uma função simples para geração de
texto usando
pen AI e a testarei Então, vamos começar. Primeiro passo, vou
subir em um terminal U aqui e criar um ambiente
virtual. Basta executar essa VM Python
comum
e, em seguida, o nome do ambiente
virtual,
novamente, Aguarde Perfeito. Você pode ver agora que a
pasta do ambiente virtual foi criada. Agora vamos ativá-lo. Vou até os scripts, ativarei
e aperfeiçoarei. Agora você pode ver que estamos dentro do ambiente virtual e
podemos instalar nossos pacotes. Basta executar o pip, instalar o open AI para instalar o
pacote pen I em nosso projeto E perfeito, passo um
feito, passo dois feito. Agora vamos criar
uma função simples para gerar texto com a caneta AI. Vou criar um novo módulo para
pen AI para tornar nosso projeto de alguma forma
estruturado e organizado. Eu direi que agora vou criar uma função aqui que
usa a API Open AI. De Open AI, importen AI, e isso é criar um arquivo de variáveis
ambientais Obtenha sua API da Open
AI e cole aqui. E vamos voltar agora para ler
a chave dos nossos scripts, vou instalar
o pacote Python, que possamos ler os valores
desse arquivo. Perfeito. Vamos voltar aqui e carregar
as variáveis ambientais. Vamos importar o sistema operacional e
a função, perfeito. Agora vamos criar uma instância
da classe de IA aberta dessa forma, temos um objeto aberto. Isso podemos chamar para gerar um texto perfeito e
passamos a chave da API da caneta. Agora, vamos criar a função que gera texto com a caneta AI. Aqui estamos gerando texto básico, usando o cliente pen I e
passando o modelo pela
foto GPT 3.5 Podemos mudar isso se você quiser, passamos um prompt do sistema
e o prompt do usuário e lemos a resposta, muito simples e básica. Já fizemos isso muito antes,
no curso de engenharia rápida e em outras aulas. Deixe-me diminuir o zoom e
explicar isso rapidamente. Usamos o pacote OpenAI, carregamos as variáveis
ambientais, obtemos a chave da API e
criamos uma instância Vamos ligar para esse cliente
só para esclarecer as coisas. Criamos esse objeto
de IA aberto a partir da classe ou instância
e, em seguida, geramos texto usando essa instância e
retornamos o conteúdo. Vamos testar isso. Vou aqui e criarei
um módulo de teste e importarei o
módulo aberto ou, digamos, partir da importação aberta,
gerarei texto básico. E agora vou dizer prompt, gerar uma resposta de
frase de cinco palavras é igual a gerar texto básico e passar a resposta de impressão
imediata. Vamos testar isso agora. Python,
teste PIs. Recebemos um erro. Vamos voltar aqui.
Acho que é APK. Dessa forma, declaramos
a instância. Vamos tentar aperfeiçoar. Sim. Precisamos adicionar a chave
da API como
nome da variável ou nome do parâmetro e obtemos a frase. Vamos esclarecer novamente, e
direi que agora gere um parágrafo sobre computação
quântica. Vamos correr, ok. E perfeito. Você pode ver agora temos uma
função simples que
podemos chamar a qualquer momento para
gerar texto com a caneta AI A terceira etapa está concluída e estamos prontos para começar a
criar nosso agente.
3. Limitação de LLM em ação: OK. Antes de começarmos a
construir nosso agente AII Vamos ver em ação e experimentar como os modelos de linguagem são limitados. Voltarei ao modelo de
teste que criei e farei a mesma
pergunta, se você se lembra, devo pegar um
guarda-chuva e sair hoje na Califórnia, por padrão, o modelo como GPT 3,5 Tb? Vamos
remover o prompt do sistema Não precisamos disso por enquanto. Agora, estou usando esse prompt
e o modelo é o GP 3.5. Vamos ver a resposta
do modelo. Eu recomendo verificar a
previsão do tempo para sua localização específica para determinar se está
chovendo ou algo assim. Então, você pode ver que ele
não tem acesso a nenhum dado ativo para
decidir com base nisso. Novamente, vou limpar e
testar com o GPT quatro. Ele diz que atualmente não consigo
acessar dados em tempo real. Novamente, é GPT quatro e não
tem acesso a nenhum dado. Lembre-se de que, quando fizemos essa
pergunta ao C GPT desenvolvido pelo GPT
four e outras ferramentas, ele conseguiu acessar e
responder a essa pergunta
porque está usando ferramentas
externas e esse tipo de agente de IA, como
você mencionou anteriormente É isso que
vamos construir do zero juntos neste curso. Ele obteve a previsão e, em seguida
, respondeu com base nesses dados. Mas se você entrar em contato diretamente com
o modelo, sem o ChagPT,
sem ferramentas externas, ele é limitado. Você vê? Como assistente de IA, atualmente não consigo
acessar dados em tempo real. Essa é a limitação
que vamos enfrentar e resolver
com agentes de IA.
4. Agente de IA codificado: Ok, amigos. Então, a partir de agora, começaremos a resolver o problema e as limitações
dos modelos de linguagem. E daremos ao modelo de
linguagem acesso a ferramentas externas. Mas nesta palestra, mostrarei como
criar o que chamo de agente de IA
codificado. Vamos começar. E acho que com o exemplo, você entenderá o ponto. Então, se você se lembra, dissemos que se quisermos ultrapassar
essa limitação e fazer com que o GPT 43.5 ou qualquer modelo de linguagem responda a perguntas que
exijam dados em tempo real, precisaremos dar a ele acesso a
funções e ferramentas externas Então, vou aqui e digo: exemplos de funções e
criarei uma função simples que simplesmente retorna o
clima com base na cidade. É muito simples e básico
retorna ensolarado, chuvoso, nublado e assim por diante, com base na
cidade, no Como eu disse antes, estou mantendo as coisas
muito, muito simples, para que qualquer pessoa possa
entender o conceito antes de prosseguir com exemplos
avançados. Há uma função muito básica em Python que retorna
um texto simples, que é o clima
com base na cidade Está bem? Agora, vou aqui
e criarei um novo módulo, e vou chamá-lo de agente
codificado Você entende o que quero
dizer daqui a pouco. Esse é o agente codificado. Nesse cenário, vamos nós
mesmos, o programador. Vamos chamar
a função personalizada, que é get weather, e vamos passar o resultado e injetá-lo no prompt antes de
chamar o modelo Se eu voltar para o teste, copiarei o mesmo. Vá aqui novamente para o agente, digamos, um agente codificado Agora, antes de executarmos essa
amostra, que é limitada, importarei minha função get
weather e direi clima
atual e obterei da Califórnia
a partir dessa função. Agora, no prompt, eu diria com base
na seguinte
condição climática e passaria a corrente para o clima que obtivemos da função. Vamos deixar isso claro dividindo em
várias linhas dessa forma, removendo os pontos positivos, adicionando o clima atual
e formatando
a Então, podemos ver agora que nosso prompt
é totalmente diferente. Fizemos a pergunta, mas injetamos o resultado
da função dentro
do próprio prompt. Então, agora o modelo conhece o clima atual
com base nessa função, e responderemos com
base nisso. Simples, hein? Vamos tentar agora executar
esse script novamente, Python e você executa um agente
codificado Vamos ver. Com base nas condições climáticas
que você descreveu como ensolaradas, normalmente
você não
precisaria de um guarda-chuva. Você vê? Agora ele respondeu à pergunta e ultrapassamos a limitação. Mas é codificado, que significa que
nós mesmos
chamamos a função no código
e a passamos para o
prompt,
injetamos o valor
e chamamos o modelo para gerar
a resposta ou
responder à pergunta Embora seja um agente autônomo de IA que vamos
construir posteriormente, o modelo de IA por si só
entenderá se precisa uma função e a
chamará por si só. Então, tudo será automatizado. Essa é a principal diferença. Essa é uma solução codificada. É semelhante aos
fluxos de trabalho de automação que criamos no curso de engenharia rápida ou o que eu chamo de cadeia de funções. Então você cria uma função
e a encadeia dentro de um prompt e
, em seguida, chama o modelo. Isso é o que eu chamo de solução
codificada para resolver a limitação
no modelo de linguagem A próxima etapa é
otimizar, melhorar
ou criar uma solução automatizada que possa fazer tudo isso sozinha. Prepare-se para um pouco de
mágica que está por vir.
5. O prompt do ReAct: OK. Então, no último exemplo, mostrei como
criar o que
chamamos agente codificado ou fluxo de
trabalho codificado e resolvemos a
limitação do LM
injetando o resultado
da função ou a saída
da
função diretamente
dentro do prompt e
obtivemos o Agora é hora de subir de nível e ver como podemos
automatizar isso, como podemos fazer com que a IA ou o
agente chamem a função automaticamente e a
passem automaticamente para o prompt ou a
pergunta para respondê-la Em termos simples, como
automatizar isso, como podemos criar um agente que pense e
responda Por favor, de agora em diante,
concentre-se muito bem. Vou passo a passo e dividirei o ID em várias palestras para
simplificar as coisas O que vou fazer agora é
criar um novo módulo, e vou chamá-lo de prompts. A ideia toda é
sobre esse prompt. Vamos diminuir o zoom. Isso é o que
chamamos de prompt de reação. Não sei se você
ouviu falar sobre o react. É um tipo
de solicitação que permite
ao modelo pensar entrada
do usuário,
na pergunta ou
na solicitação e realizar ação leve para
responder à pergunta Aqui está o prompt que estou usando. Você foi conduzido em um
ciclo de pensamento, ação, pose e resposta à
ação. No final do loop, você gera uma resposta. Então eu explico isso.
Eu digo a eles que a ideia é
entender a pergunta
que lhe foi feita. Portanto, ele usará o pensamento para entender os requisitos
do usuário. Em seguida, ele usará a ação para executar uma das ações
disponíveis para você. Portanto, com base na
compreensão da tarefa, ele escolherá uma
ação e a executará. E então a resposta
da ação é o resultado das
ações selecionadas. Em seguida, direi ao modelo quais ações estão
disponíveis para uso. No nosso caso, temos a função
get weather. Então, vamos chamá-lo
assim, obter o clima, e os parâmetros
são Califórnia, que é o nome da cidade, e depois retornamos o estado
climático atual da cidade. Então, essas são as funções
ou ações
disponíveis para o modelo. E no final,
darei um exemplo de sessão. Então, direi, por
exemplo, que se a pergunta fosse: devo levar um guarda-chuva
na Califórnia hoje, o pensamento será: devo primeiro
verificar o clima na
Califórnia Então é assim que os humanos pensam. Quando eu te pergunto,
devo levar um guarda-chuva? Você vai
pensar primeiro no clima? Está ensolarado? Está chovendo Em seguida, você verificará o clima. Você usa uma ação, por exemplo, você verifica a previsão
on-line ou algo assim. No nosso caso, temos uma
função para obter o clima. Em seguida, ele fará uma pausa
e, em seguida,
esfriará novamente com
a resposta da ação Por exemplo, se a resposta da
ação foi: o clima na Califórnia está ensolarado. Então, temos agora o clima para que
possamos responder à pergunta
com base nessa saída. A saída seria
algo como, não, eu não deveria levar um guarda-chuva hoje porque o
tempo está ensolarado Então, estamos dando
uma sessão de exemplo para o modelo entender
como ele funcionará. Então, novamente, esse mesmo baile permite
que o modelo pense sobre a pergunta ou a
solicitação que foi feita e tente entendê-la
e, em seguida, entenda quais tarefas ou quais ações ele
deve tomar para
resolver o problema, e forneceremos uma
lista de ações a serem usadas Ele usará essas ações, obterá a resposta e usará
o prompt para obter a final. Resposta. Vamos ver agora como esse prompt funcionará
em nosso cenário. Então, vou criar
um novo modelo novamente, e vou dizer, teste de agente de
reação. E vou copiar agora o agente
codificado aqui. E eu vou remover esse. Vou manter a pergunta
como está em L quatro
e, em seguida, passarei ao
sistema aqui o prompt do sistema. Simplesmente passarei
o prompt do sistema, mas vamos importá-lo antes. Vou dizer prompt, react system prompt, perfect, e vou passá-lo aqui. Então, o único ajuste
que fizemos aqui foi receber a solicitação novamente para uma pergunta simples sem
fornecer nenhum dado Movemos a função
e agora veremos como o modelo funcionará com
esse novo prompt do sistema. Deixe-me mudar a
Califórnia também para, por exemplo,
Arizona, outra cidade Não queremos uma combinação perfeita. Só para ter certeza de que o prompt
está funcionando perfeitamente
e, de alguma forma, é genérico. Então, vamos executar esse script, Python, e copiar o nome do script E vamos ver agora
o que vai acontecer. Por favor, concentre-se na saída. E perfeito. Você pode ver que
agora está de alguma forma pensando. Tem uma ideia. Esse
é o primeiro passo. Se você voltar ao prompt, verá que a primeira etapa foi
pensada para entender
a pergunta. Então, o pensamento é : preciso verificar o
clima atual no Arizona Em seguida, a ação
escolhe uma ação, que é obter o clima e os parâmetros no Arizona,
e depois posiciona Veja, chegamos a
esse ponto, perfeito. Mas como ainda não
temos a função, o modelo não tem acesso a nenhuma função neste teste. Não definimos nenhuma
função aqui, nada. Então, simplesmente pausou e
não tivemos a saída final. Mas isso é perfeito para esta
palestra sobre este ponto. A ideia que quero
mostrar aqui é que esse prompt de pacto permitirá o modelo entenda a questão,
decida uma ação, a execute
e escolha a ação.
Chegamos a um
ponto em que o modelo pode escolher
automaticamente uma ação a ser usada e, em seguida,
responder à pergunta A próxima etapa é definir
essa função para que o modelo
possa chamá-la e usá-la.
6. Como adicionar funções: OK. Então, na última etapa, o agente foi capaz de pensar sobre a questão e
decidir a ação. Mas como não há nenhuma ação
definida em nosso script, o modelo não chamou nenhuma
ação ou função. Então, nesta palestra, vamos para o nível três
e fazer com que o modelo chame
automaticamente a ação necessária para
responder à pergunta Então, vou aqui e
aplicarei este script Quero acompanhar
cada atualização para que você possa acessar cada script e
acompanhar passo a passo como
desenvolvemos o
agente do zero Na verdade, vou renomear isso para R A para tornar a nomenclatura
um pouco menor, R A, que significa agente de reação, e direi com teste de
funções, e este, o teste básico RA E agora vou copiar o
mesmo código e movê-lo aqui, e vou definir o conjunto de funções disponíveis
para o modelo. Então, vamos remover isso. Eu vou dizer aqui, ações
disponíveis, e simplesmente eu defino uma lista que contém o nome
de cada função. E vamos importar a função das funções de amostra
e transferir para o clima. Portanto, temos uma lista entre
as quais o modelo pode escolher. No nosso caso, temos apenas uma para simplificar as coisas,
como mencionei antes, mas essa é uma lista, o modelo pode acessar e
escolher uma função e chamá-la. Veremos como daqui a pouco. Temos uma lista de ações
disponíveis. Agora, o que vou
fazer é ler o nome da
ação na saída e instruir o
modelo a chamar essa função Você pode ver que o modelo
sabia que precisamos obter a função
climática com o
Arizona como parâmetro Mas como vai
chamá-lo, vamos ver. Então, agora temos a resposta. Aqui, queremos instruir o modelo a chamar a
ação ou a função Então, o que precisamos é extrair o nome
da função da resposta, e a resposta é
uma resposta de texto. Então, meu pequeno truque aqui
está dentro do nosso prompt. Em vez de retornar um texto
simples como esse, vou retornar
um Jason estruturado Seria muito
mais fácil
lermos o nome e
os parâmetros. O que vou fazer aqui é
ir para a sessão de exemplo e você verá aqui que a ação retornada
está nesse formato, no nome
da função e, em
seguida, no parâmetro. Em vez disso, direi
ao modelo que retorne isso em JS dessa forma. Então, em vez desse texto
simples aqui, temos um JSN dentro do
texto para que possamos extraí-lo facilmente do texto
da resposta e
chamar a função Vamos voltar ao nosso teste aqui
e, antes de escrevermos o código
para extrair a função, deixe-me mostrar o que
aconteceu, o que mudou agora. Vou executar isso no script, e você pode ver agora, o
pensamento é o mesmo. Preciso verificar primeiro o
clima no Arizona, mas agora a ação
está no formato Jason E isso é muito importante. Agora posso ler facilmente essa string de Jason convertê-la em Jason e
chamar a função Espero que tenham entendido a
ideia porque se você tem um texto simples
aqui como antes, talvez precisemos de expressões
regulares. De alguma forma, será mais difícil
extrair uma função ou uma string simples de
dentro da resposta. Quando tivermos um
Jason estruturado como este, será muito mais fácil Mas como podemos extrair esse texto
JSN dessa resposta. Aqui estão minhas
funções auxiliares que desenvolvi, criei para facilitar
as coisas para você Vou aqui e criarei
um novo módulo Python, vou chamá-lo de ajudantes de JS. Vou colar as funções que
criei . Isso pode
ajudá-lo em Mas o que precisamos no nosso
caso é essa função, extrair Jason do texto Olha como isso é fácil agora. Voltarei ao nosso
exemplo e simplesmente
direi que a função Jason é igual
ao nome da função Vamos primeiro importá-lo do
Jason helpers import. Qual é o nome da
função? Extraia Jason. Ajudantes, digamos, extraia
JS e da resposta, e agora vamos imprimir
a função JSN Vamos também imprimir a resposta, eu diria a resposta do modelo, e então direi funções
JS extraídas após
essa formatação E agora vamos ver
o que vai acontecer. Então, o que estou fazendo aqui
simplesmente é imprimir a resposta principal e, em seguida,
extrair a função JS
e, em seguida, imprimir a função
extraída para ver se tudo
está funcionando perfeitamente Então, vamos executar isso. Você pode ver. Essa é a principal
resposta do modelo. Em seguida, a função JSN extraída. Você pode ver que agora temos uma lista de funções
com seus parâmetros. Você pode ver o nome da
função e os parâmetros
da função City, Arizona Agora temos um JCN. É muito mais fácil simplesmente ler
os valores desse JSN. Espero que você tenha entendido a ideia aqui. Eu instruí o modelo
aqui com o prompt gerar a ação
e o parâmetro ou a função com o
parâmetro no formato JSM, então será mais fácil
para mim
extraí-lo posteriormente e permitir que o
modelo execute essa Vamos comentar essas linhas. Agora eu tenho a
função JSN como texto. A próxima etapa é
executar a função. Deixe-me te mostrar o código.
De alguma forma, é simples. Acabei de verificar se essa função JSN existe
quando a extraímos Então eu recebo o nome da função
e os parâmetros da função. Agora você pode ver como é
fácil
obtê-los do JSIN
cortando o JSN Em seguida, verifico se o nome da função existe na lista de
ações disponíveis. Onde está essa lista, lembre-se, nós a definimos aqui. Ele verificará se esse
nome de função existe nessa lista. Caso contrário, dirá ação
desconhecida. Se sim, ele imprimirá em execução o nome da ação
com os parâmetros, então eu definirei
a função e a
codificarei aqui com os
parâmetros, salvarei o resultado dentro dessa
variável e simplesmente mostrarei essa
mensagem de resultado da função, que é o resultado da
função, aqui o resultado, e vamos imprimir a mensagem do resultado da
função de impressão. É isso mesmo. Extraímos o JSN, depois extraímos
o nome da função e os parâmetros da função, verificamos se ele está
disponível aqui, pegamos o
nome da função e o chamamos, obtemos o resultado e
estou imprimindo agora
para mostrar que tudo está
funcionando conforme Vamos esclarecer isso novamente
e testar nosso novo código. Vamos ver o que vai
acontecer agora, corra, e você pode ver agora,
diz correndo, veja o clima. Então, o modo
escolheu automaticamente a função e a executou. Mas temos aqui um problema. Diz que a
resposta da ação é nenhuma. Por quê? Simplesmente porque, se
formos para nossa função de amostra, não
temos o
Arizona na lista Então, vamos escolher algo
que está disponível aqui, como Londres, e ir aqui e
alterar o prompt Se eu levar um guarda-chuva
comigo em Londres, vamos agora tentar
executar e aperfeiçoar Você pode ver agora o clima
correndo, a cidade é Londres e a resposta à
ação está nublada O modelo agora nesta etapa foi capaz de decidir que
deveria verificar o clima, eu treino a função e obtemos a resposta O próximo passo é
fazer o modelo, usar a resposta para responder nosso prompt principal,
nossa pergunta principal. E é aí que
precisaremos do loop de agentes de IA. Se voltarmos para o prompt, lembre-se de que temos um loop. Então, explicaremos mais sobre
esse loop e criaremos nosso próprio loop de agente
para que o modelo ou o agente de IA possam responder
com a resposta final.
7. O loop: Ok, amigos,
na última aula, chegamos a um
ponto em que, no modelo somos capazes de obter a função, extraí-la da resposta, chamá-la e obter um
resultado da função Então, neste exemplo, para Londres, percebemos que
a resposta é nebulosa Então, agora o modelo sabe que o tempo em Londres está nublado Mas isso não gerou
a saída final. É aqui que o
loop é importante. Se voltarmos às
instruções, lembre-se que você corre em um ciclo de
ação e ação de resposta Então, o que devemos fazer agora é fazer o modelo
rodar dentro de um loop. Dessa forma, ele terá a resposta da ação na
segunda iteração do loop Então, na primeira iteração, ele obteve a resposta
na segunda iteração Ele terá a resposta para
poder responder à pergunta. Espero que tenhamos entendido a ideia
porque nesse script aqui, entramos no baile e
extraímos a função
e obtivemos o resultado Mas paramos aqui. A modelo não
sabia como responder. Acabamos de receber a resposta
da função. Então, precisamos aninhar esse
código aqui dentro de um loop. Assim, o modelo pode ser executado novamente e agora ele conterá
as informações. Ele terá a
resposta da ação dentro das mensagens. Para fazer isso, nesta palestra, vou apresentar
uma nova função Volte para nosso módulo aberto aqui. Vou criar essa nova função. E em vez de pegar um prompt
simples e o
prompt do sistema e criar as mensagens manualmente aqui
no corpo da função, simplesmente passarei as
mensagens como um parâmetro. Então, de alguma forma, podemos fazer o modelo, lembrar
a conversa. Salvaremos a conversa
dentro do loop. Então, agora temos essa função
na próxima palestra, finalizaremos nosso agente E se você acha que há
algo incerto aqui, acho que aplicaremos isso
na prática na próxima aula, você entenderá como o
loop funciona e como o modelo
e como o agente A está
trabalhando dentro desse E você entenderá a
importância do loop.
8. O agente final: Ok, amigos, nesta palestra. Vamos finalizar nosso agente de IA implementando o loop final Então, novamente, vou
criar um novo módulo, vou chamar RA final. E este é nosso agente de reação
final. Espero que, com este exemplo, você entenda toda a
ideia por trás dos agentes. Então, vou copiar o
mesmo código aqui. Ok, vamos remover
esses comentários. E agora, o que vou fazer
é adicionar mensagens. Lembre-se de que adicionamos essa função aqui para que possamos passar mensagens. Então, vamos usar
essa função em vez disso. Então, precisamos
importá-lo aqui, perfeito. E em vez do prompt
e do prompt do sistema, passaremos mensagens e
as definiremos aqui. As mensagens são iguais. E vamos encarar esse código simples. Você sabe que no OpenAI, temos o prompt do sistema o prompt do usuário e
uma conversa, e você pode adicionar o quanto quiser aqui entre o assistente
do usuário, como uma conversa a ser passada com o modelo para começar, se
quiser . Portanto, temos aqui
apenas o prompt do sistema, que é o prompt
do sistema de reação, e temos o conteúdo, que
é nosso aviso simples aqui Agora passamos essas mensagens como um parâmetro para nossa nova função, então agora ela será
gerada com base nessa conversa. Até agora, nada de
novo, muito simples. Em vez de passar ao prompt um prompt
do sistema, cada um
como parâmetro, usamos a nova função com
esse parâmetro de mensagens. Em seguida, extraímos a
função, nada de novo. Agora precisamos implementar o
loop sobre o qual falamos. Por favor, concentre-se nesta parte.
Isso é muito importante. É quase a parte
mais importante na estrutura do agente de IA. Agora, em vez de gerar
diretamente a resposta da IA e depois extrair
e continuar, vamos aninhar isso dentro de um loop, como mencionei antes
na última palestra Basta definir duas variáveis, a contagem de turnos e
o máximo de voltas. Quantas vezes você quer que o asiático corra,
quantas iterações
e, em seguida, um simples
loop y, e você dirá que, embora a contagem de turnos seja
menor que o máximo de voltas, ela continuará Vou imprimir a iteração ou a contagem de turnos apenas para saber
onde estou dentro do loop Em seguida, adicionarei um à contagem de
turnos para que possamos quebrar
o loop quando ele atingir cinco e simplesmente adicionaremos uma orientação de guia aqui para criar
o código dentro do loop. Então, na primeira iteração,
o que acontecerá, geraremos a resposta, extrairemos a função e obteremos o resultado da
ação. Está bem? Agora, o que precisamos fazer é
acrescentar o resultado
à conversa Você vê aqui que
temos as mensagens. O que vamos fazer
agora aqui é acrescentar uma nova mensagem informando que
recebemos uma resposta de ação Obtivemos um resultado
da função. Vamos contar ao modelo. Ok, agora temos a resposta para que você possa responder à
pergunta. Como fazer isso? Simplesmente. Depois de recebermos a mensagem de resultado da
função, simplesmente
anexamos
essa nova mensagem
ou nova mensagem de bate-papo à matriz de
mensagens aqui. Está bem? Então, agora, se você quiser,
teremos algo assim. A matriz de mensagens
será mais ou menos assim
neste estágio. Então, agora temos a conversa
completa, e podemos novamente
na segunda iteração,
quando chamarmos isso, agora as mensagens conterão
o resultado da função Então essa é a
importância do loop. Estamos acompanhando os resultados que
o modelo gerou. Obtivemos resultados
da função, então a adicionamos às mensagens. Então, na segunda iteração, ele verá que temos um
resultado da função E vou acrescentar aqui no final, se não tivermos uma função
adjacente, eu diria que senão quebre. Para ver tudo o
que está acontecendo dentro do
loop, estou aqui também. Imprima a resposta para que
possamos ver
exatamente o que está acontecendo
dentro da mente do agente. Então, faça um loop, imprima a resposta, extraia a função, obtemos
a função e a executamos. Obtemos o resultado
da função. Adicionamos o resultado
ao histórico de mensagens
e, em seguida, fazemos um loop
com os novos resultados. Vamos ver o que vai acontecer agora. Limpe e vamos executar nossa implementação final ou
um final.yn Perfeito. Então, na primeira
iteração do ciclo, o modelo, o agente disse, eu deveria primeiro verificar o
clima em Londres Então eu preciso dessa ação. Ele executou a ação. Você vê? Eu preciso saber o clima.
A cidade é Londres. A resposta da ação é nebulosa. No segundo loop, veja essa mágica incrível. Realmente, é como mágica. Algo muito interessante. Na segunda iteração, o agente agora sabe que
o tempo está nublado Então, isso significa que sim, você deve considerar usar um guarda-chuva, pois está
nublado em Londres Então, na primeira iteração, entenda a pergunta,
eu executo a função
e, em seguida, adiciono os resultados ao segundo loop
à segunda iteração, e assim por diante até encontrar
a resposta final E o que é interessante aqui agora
você pode fazer ao agente qualquer pergunta que exija
conhecer o clima. Não se trata apenas do
guarda-chuva. Deixe-me mostrar um exemplo. Vou alterar essa solicitação
e perguntarei outra coisa ao
agente. Pergunta muito básica. Qual é o clima
em Londres hoje? Então, se você está falando sobre isso, novamente, agora o agente de IA pode responder a
essa pergunta facilmente. Isso me dirá que o
tempo está nublado. Ele usa a
função externa . ' Então faça algumas
outras perguntas complicadas para ver o quanto
esse agente de IA é inteligente Por exemplo, é um bom dia para visitar a praia na
Califórnia. Vamos testar isso. Sim, é um bom dia. O clima é Sonny. Vamos tentar outra coisa. É muito interessante.
Deixe-me perguntar desta forma. Qual é o clima em Nova York, e eu escreverei Nova
York com erros ortográficos Vamos ver se ele consegue
lidar com isso sozinho. Corra novamente. Perfeito.
Ele lida com isso. Deixe-me perguntar algo que não
tem nada a ver com o clima. O que é marketing digital? Vamos ver o que vai acontecer. Pensei sobre isso, e
é uma pergunta baseada em fatos, então recebi uma resposta diretamente. Talvez você esteja se perguntando
agora como posso restringir esse agente a responder apenas perguntas relacionadas
a um caso de uso específico,
como, por exemplo, se é
ou talvez apenas para marketing ou apenas para ajuda
financeira e assim por diante. Como posso restringir
o modelo para fazer isso. Tudo gira em torno do prompt
do sistema. Vou discutir isso mais
na próxima palestra.
9. O prompt: Então, na última palestra, terminamos o agente de IA e eu mostrei como
o loop funciona e como o agente de IA conseguiu usar uma função externa
automaticamente para responder às nossas perguntas E brincamos com esse aviso e fizemos perguntas diferentes. E eu mostrei também
que ele pode responder a perguntas
genéricas, como
o que é marketing digital. Vamos executar isso de novo. E você verá que ele tem uma resposta sobre marketing
digital. Nesta palestra, quero
falar um pouco sobre o sistema,
o react prom Primeiro, quero mencionar que esse prompt não é
o prompt perfeito. Às vezes, se você mudar
um pouco nesse prompt, talvez obtenha resultados melhores. Por exemplo, nesta
postagem de bloco, e a propósito, é uma ótima postagem de bloco, aqui, Simon, o autor usa
esse prompt aqui. É de alguma forma semelhante
e, para ser sincero, recebi algumas ideias do blog dele
quando criei o curso. Mas se você ver aqui, quando ele recebe a função, ele retorna desta forma, a
ação, o nome da função
e o nome do parâmetro. Se você acessar o script Python
que ele construiu ou criou, verá o uso de expressões
regulares Essa abordagem, na minha opinião, não
é a melhor abordagem
usando expressões regulares. É por isso que, em meu prompt, preferi usar a
estrutura da resposta Jason e
extraí-la da resposta, para que possamos interagir facilmente com
as funções. Mesmo que eu esteja usando de alguma forma expressões
regulares
para extrair o JSN Mas quando o
extrairmos, obteremos algo
parecido com este, que é facilmente acessível
e podemos jogar com muito mais facilidade do que um
simples texto simples. Então, o que eu quero
dizer é que esse aviso não é
o aviso sagrado. Você pode brincar com
isso, você pode mudar. Vou compartilhar com vocês algumas versões
diferentes
desse prompt. Enquanto preparava o curso, eu estava brincando com algumas ideias rápidas
diferentes. Deixa eu te mostrar essa. Como você pode ver aqui, eu tenho
diferentes versões de prompt. Vou anexar tudo isso, para que você possa jogar e
testar se quiser. Só uma nota final. Se você quiser que o
agente de IA responda perguntas somente em seu
cenário de caso ou caso de uso específico. Por exemplo, quero que o agente responda apenas perguntas
relacionadas a se. Posso adicionar isso ao prompt
do sistema. Não responda a nenhuma
pergunta que
não esteja relacionada ao clima. E então você escreve
o prompt de reação. Se você for aqui agora
e vamos testar isso, eu pergunto o que é marketing digital? Vamos ver qual
será a resposta. Você pode ver que eu sinto muito, mas eu só posso fornecer
informações sobre o clima. Esse prompt do sistema é muito
importante, se você quiser. Para tornar seu agente específico para um cenário de caso de uso especial. Acho que de agora em diante, você pode usar o mesmo modelo de
prompt, esse modelo de reação. Você pode adicionar mais funções
e testá-las se quiser, e faremos isso mais tarde. Mostrarei como
você pode implementar alguns agentes avançados de IA com diferentes cenários e
casos de uso posteriormente nos vídeos do
projeto. Mas, por enquanto, acho que você
entendeu a ideia completa e a importância
desse prompt do sistema.
10. Simplifique com o SimplerLLM: Ok, amigos. Nesta palestra, mostrarei como simplificar
o processo de criação de agentes de IA com uma biblioteca
chamada LM mais simples Então, o que vou fazer
simplesmente é clonar
esse copiar e colar e
simplesmente renomeá-lo Vamos chamá-lo de
algo mais simples. E a ideia aqui é mais simples.
LM é uma biblioteca que eu desenvolvi. É um pacote Python que
ajudará você a interagir com modelos de
linguagem com muito Acredite, isso me ajudou
muito e eu o tornei
público e de código aberto Qualquer pessoa pode usá-lo e criar ferramentas poderosas de
IA com facilidade. Olha isso agora. Não
precisaremos mais desse módulo, não
precisaremos mais do módulo JS
Helpers. Precisamos do prompt e da função de amostra de clima do
GT
e, simplesmente aqui, instale um LM mais simples e
verifique se você está no
ambiente virtual Basta instalá-lo, esperar um pouco e perfeito Agora, a partir de
uma linguagem
simples de pontos LM LLM importe LLM
e o provedor LLM Olha isso. Agora, criarei
uma nova instância de LM e selecionarei
o provedor como IA
aberta e o
nome do modelo como GPT four Agora eu tenho essa instância. Eu posso usá-lo para
gerar texto com IA. O que é muito bom é que
você pode simplesmente mudar o provedor para Gemini
ou autoantrópico, e o código permanecerá como Essa é a principal vantagem
de usar o LM simples. Com uma instância, você pode
criar o aplicativo
e, se quiser
alterar o modelo, basta alterar
o provedor aqui. De qualquer forma, a IA também, e vamos até aqui, a função de gerar
e, digamos, gerar resposta e passar as
mensagens, mensagens iguais, e não precisamos mais do
modelo aqui ,
pois ele é definido
com a instância, e então simplesmente podemos
inserir também as ferramentas JSN, que estão embutidas nessa
biblioteca Temos um conjunto de
ferramentas, auxiliares de JS,
importamos, extraímos JS do texto e simplesmente o substituímos por essa função aqui Com essa biblioteca, agora, você
não precisa de todos esses módulos em seu script Python
. Vamos testá-lo. Vou executar isso e ver o que
vai acontecer e aperfeiçoar. Funciona como antes. Portanto, agora não precisamos de
todos esses módulos, como mencionei, você só precisa importar a biblioteca
e usar as ferramentas. Talvez você pense agora que não é grande coisa. Eu posso criar esses arquivos, mas você verá mais tarde,
quando criar mais projetos e
ferramentas de IA e assim por diante, você verá como isso
mudará o jogo Acredite, com
base na experiência real, mais de 100 projetos de IA, isso mudará a maneira como você interage com os modelos de
linguagem.
11. Crie um auditor de SEO: Olá a todos, espero que tenham gostado deste curso sobre como criar agentes de
IA do
zero com Python Agora, nesta palestra, construiremos um exemplo do mundo
real Algo realmente
super interessante. Vou criar um agente, um agente de IA que possa responder
perguntas sobre páginas da web. É um agente auditor de SEO. Assim, ele terá
acesso direto às páginas da web e você poderá perguntar o que quiser, por exemplo, quantas fotos
existem nesta página da web Como otimizar essa
página da web para ser classificada no Google. Qualquer coisa que você quiser. É
como seu assistente de SEO. SEO significa otimização de
mecanismos de pesquisa e é a técnica usada
para otimizar seu site, que possamos nos classificar no Google
ou nos mecanismos de pesquisa para obter tráfego orgânico. Vamos criar juntos
o agente de IA mais antigo de SEO. Tenho certeza que você vai adorar isso. É super interessante.
Vamos começar. Então, aqui está um novo projeto. Vou começar
do zero para que possamos revisar tudo o que
fizemos e você
verá agora a importância e
o poder de um
LM mais simples neste projeto Crie um novo arquivo Python. Este é o arquivo principal, e vamos criar o
arquivo de prompt, abrir o terminal. Vamos criar um novo ambiente
virtual. Não se preocupe com os códigos. Tudo será anexado
ao curso. Por favor, concentre-se agora. Entenda o conceito para que
possamos criar qualquer agente que você quiser. Vamos ativar. OK. Perfeito. Instale
um LM mais simples, ok, perfeito Agora vamos adicionar nossa pasta
APike aqui e agora vamos começar Primeiro passo,
importarei um LM mais simples e
criarei uma nova instância, como
fizemos na última aula Agora temos isso que
extrai JS do texto e temos a instância
gerando texto com GPT para API Agora, antes de prosseguirmos, vamos entender o asiático
que vamos construir. Como mencionei, este é
um agente auditor de SEO. Assim, podemos perguntar qualquer coisa sobre qualquer página da web e ela pode
acessar os dados da página da web. Ele pode ler a página da web
e responder com base nisso. Então, qual é a nossa ação externa, a função externa?
Vamos definir isso. Digamos ações,
por exemplo, ponto Y, e essa função é
simplesmente uma função que pode gerar um
relatório de SEO para qualquer página da web Então, para fazer isso, usarei
uma API simples que desenvolvi. É chamada de ferramenta de análise
de SEO do site. Se você acessar a
API rápida e testá-la, por exemplo, este é meu
site, ponto final de teste, você verá que
obtemos uma descrição detalhada, os cabeçalhos HTTP, os títulos, a descrição, a
contagem de palavras, as imagens, Portanto, os dados sobre
qualquer página da web são perfeitos. Então, agora, vou criar
uma função que chama essa API e
retorna a auditoria de SEO. Agora, aqui está o
poder do LM simples. Construímos um
módulo de API rápida nesta biblioteca. Assim, podemos chamar qualquer API em uma API rápida com
essa classe simples. Então, vou definir essa função. É preciso um URL. Eu fornecerei o
APURL da API rápida. Vamos ver, essa é a URL, e temos o
parâmetro como URL,
você pode ver, eu
defino os parâmetros
e, em seguida, chamo a API com essa função simples
e retorno a resposta. Você pode ver agora como o
LM simples tornou as coisas muito mais fáceis agora e criamos a função facilmente com a
ajuda do LM simples Perfeito, temos a ação. Agora é hora de
definir o prompt. Claro, eu preparei
isso antes. Só para não perder tempo agora
escrevendo o prompt completo. Vamos colar e
explicar brevemente. Olha isso. É quase a mesma ação,
pensamento, ação, resposta, o mesmo modelo de reação, mas agora temos diferentes ações
disponíveis. Temos o relatório da
página get SCO que você pode ver e teremos uma
URL como parâmetro E esta é a sessão de exemplo.
Isso é muito importante. Olha isso. O
título está otimizado para a palavra-chave marketing na página
da web? nas.com
é meu site A ideia de que eu deveria primeiro gerar um relatório de SCO completo para
a página da web Ele chama essa função e
, com base no relatório, responderá à sua pergunta. Você vai ver agora o quão
interessante é isso? Este é o nosso aviso.
Voltarei à sessão principal para acessar o script principal e importarei a
função de actions, importarei, obterei um relatório de página CO
e, de import axt
and prompt, perfeito Temos a ação agora,
temos o prompt e temos nossas funções, temos a instância LM, estamos prontos para
criar o agente Então, de agora em diante, o código é quase o mesmo.
Eu vou colar isso. Você verá que agora
temos a consulta do usuário, que é a pergunta que
você deseja fazer. Por exemplo, quantas imagens
na página da web a seguir. As mensagens, eu as defini, depois a contagem de turnos, o loop. Você se lembra do loop. Então,
temos a resposta do agente. Usando agora a instância do
elemento para doar a resposta
e passar as mensagens e, em seguida, simplesmente
anexar a resposta. Simplesmente temos a resposta do
agente, extraímos a ação e verificamos
se ela está disponível. Portanto, precisamos definir
as ações disponíveis em Lembre-se dessa lista,
vamos defini-la. Vamos aqui e
defini-lo como disponível. Ações, aqui está a ação. Agora, acho que está
tudo perfeito. Eu abro a mensagem.
OK. Vamos testar isso. A questão agora
é quantas imagens na seguinte página da web? Vamos tentar Python main BY Runs, temos uma API de erro que
deve ser fornecida para Precisamos fornecer o APK
rápido também aqui, acrescentamos que este é meu AP Ike e você pode encontrá-lo,
aliás, aqui, o APike rápido. Vamos
voltar ao nosso Vamos limpar e tentar novamente. Agora, espero que funcione. Função, perfeita,
geração de relatório, loop dois. Há oito imagens
nesta página da web. Perfeito. Vamos fazer uma pergunta
diferente. Qual é a
velocidade de resposta desta página da web. Vamos correr. A
resposta final é de 0,08 segundos. Uau, de alguma forma rápido. você pode ver, agora temos esse agente de IA
capaz de responder qualquer pergunta relacionada às suas páginas da web com a ajuda
de uma função externa Este é o nosso agente de IA de auditoria de SEO. Lembre-se de que esse é o
back-end do nosso agente. Estamos interagindo agora
com o terminal. Esse pode ser um ótimo projeto
para talvez uma ferramenta em seu site, como explicamos
em meus outros cursos sobre a criação de
ferramentas de IA no WordPress, ou talvez a criação de um bot de bate-papo. Novamente, no WordPress, desenvolvido por um assistente como este aqui. Quando você cria esse agente
e, a propósito, temos
infinitas possibilidades aqui, podemos criar qualquer agente que você queira que possa
ajudá-lo em qualquer coisa ou fornecer isso como um serviço aos seus clientes em
seu próprio site, para seus próprios clientes,
para seus próprios visitantes. Seria algo
muito útil para
sua empresa ou para você mesmo,
ou talvez para ser mais produtivo
em qualquer coisa que você quiser.
12. O que é o próximo?: Então chegamos ao
final desse curso. Espero que você
tenha gostado de aprender a criar agentes de IA com a ajuda do react prompt e do Python totalmente do zero.
Agora, o que vem a seguir? A coisa mais importante
a fazer é
praticar, criar seu próprio agente. Você pode obter todos os meus códigos. Tudo está anexado,
baixado e tente ajustá-lo, alterá-lo para criar
seu próprio agente personalizado Não se esqueça de compartilhar tudo conosco
com a comunidade. Nós podemos compartilhar ideias, nós podemos. Estou aqui para ajudá-lo a
qualquer momento, se você enfrentar algum problema, poste
suas perguntas Estou aqui quase todos os dias. A segunda coisa é
que publicarei mais projetos asiáticos de IA quase todos os meses na minha
videoteca no meu site. Se você gosta de participar, pode ir até
lá e continuar e ver mais exemplos e mais
projetos todos os meses. Obrigado e veja outro curso.