Dúvida sincera.
O vídeo fala em "flexibilização" do uso de LLMs. Mas, pelo que vi, para cada LLM que se pretende usar, eu tenho de mudar meu código para implementar um objeto específico para usar aquela LLM... É isso mesmo?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Dúvida sincera.
O vídeo fala em "flexibilização" do uso de LLMs. Mas, pelo que vi, para cada LLM que se pretende usar, eu tenho de mudar meu código para implementar um objeto específico para usar aquela LLM... É isso mesmo?
Oii, Jefferson!
A tua dúvida sobre a flexibilização da troca de LLMs é bem legal, e a observação que você fez tá correta: cada provedor exige um construtor próprio.
O ponto aqui é onde está a flexibilidade. Ela não elimina o construtor específico, mas isola a diferença em uma única linha. Todos os construtores (ChatGoogleGenerativeAI, ChatMaritalk, ChatOpenAI, ChatAnthropic) herdam de BaseChatModel e expõem a mesma interface: invoke(), stream(), batch(), o mesmo formato de mensagens e o mesmo .content na resposta.
Isso significa que todo o restante do sistema (prompts, chains, parsers, agentes) permanece intacto quando você troca de modelo, o que não aconteceria se você chamasse os SDKs nativos de cada empresa, cada um com sua própria assinatura de método e estrutura de retorno. Você pode explorar isso na prática: centralizando a criação da LLM em uma função get_llm(provedor) com um if/elif retornando o construtor certo. Vale lembrar do limite que a própria aula mostra: a interface é comum, mas as capacidades não são, e por isso o Sabiá-3 retornou erro 400 ao receber uma imagem que o Gemini processa sem problema.
E você, Jefferson, pretende usar mais de um modelo em paralelo no seu projeto, direcionando cada tipo de tarefa para o mais adequado? Compartilhe aqui no fórum.
Oi, Lorena!
Vim agradecer por ter respondido meu questionamento. :)
Sobre sua pergunta: Eu confesso que não havia pensado nisso até estudar este conteúdo. Imagino que, para minha ideia de projeto, não seria necessário usar de mais de um modelo. Mas, num futuro, evoluindo mais a ideia, pode ser interessante, sim. :)
Mais uma vez, obrigado!