Neste projeto, construí um pano no LLAMA3-70B-8192 LLM, acessado usando a API Groq. Os documentos usados para RAG foram recuperados através do blog Webs -lanping do Blog, que contém artigos sobre finanças pessoais. Os artigos que recuperei eram principalmente sobre a compra de propriedades em Cingapura e apólices de seguro. O objetivo é desenvolver um modelo de idioma que seja mais ciente e capaz de responder a perguntas relacionadas ao financiamento pessoal no contexto de Cingapura.
Eu usei o SCRAPY para raspar os artigos, o modelo Minilm-L6-V2 para conversão de pedaços de texto em incorporação e loja de vetores da FAISS para armazenamento e recuperação de texto. Finalmente, usei Langchain para interagir com todos os diferentes componentes, desde a recuperação de pedaços de texto para solicitar estruturação e encadeamento para obter uma saída desejada.
A saída final é gerada encadeando dois avisos, o primeiro a resumir o contexto fornecido (os três principais pedaços de texto mais semelhantes à pergunta que o usuário fez) e o segundo para gerar resposta real. Isso é para garantir que o prompt usado para gerar respostas não se torne muito longo (se contiver pedaços de texto completos como contexto), permitindo que mais contexto seja fornecido ao LLM.
O encadeamento de prompts funciona conforme o esperado, com a resumo de pedaços de texto adicionados com sucesso ao segundo prompt. O desempenho do pipeline varia dependendo da qualidade dos documentos de contexto fornecidos.
Fazendo este projeto, aprendi a implementar um pano usando Langchain, como interagir um LLM com modelos imediatos e encadeamento rápido usando a linguagem de expressão de Langchain (LCEL) e como usar lojas de vetores e incorporar funções juntamente com o Langchain. Acredito que esses conceitos fundamentais de desenvolvimento de aplicativos LLM me permitirão criar aplicativos LLM mais complexos no futuro.