Que resposta maravilhosa, se me permite gastar mais alguns cents seu.

  • Como eu consigo fazer esse RAG ou CAG, eu preciso do python certo? Sabe de algum tutorial/vídeo de como fazer?
  • É melhor fazer naquele google notebook certo?
  • Eu consigo usar algum modelo do huggingface sem precisar do python? Pergunto se consigo usar diretamente em C (sim, tenho ideia do que estou fazendo com C)?
  • O fato de usar o transformer em python ou outra é considerado alguma limitação de consumo de recursos (por isso a pergunta sobre C)?

Simplificando: use o anythingLLM para comecar.

Instale em um docker, configure e use a API dele de dentro da tua aplicacao para ser um wrapper para o LLM que voce precisa.

A vantagem que o anythingLLM ja vem com tudo "pronto" - voce apenas configura o LLM default desejado (mas pode ter varios).

Ai voce testa o que importa, ou seja, a aplicacao em si.

Quando voce fizer tudo funcionar, se for o caso, ai usa o python/langchain/etc para acessar os LLMs.

Na pratica ? Nao tenho mais acessado mais direto via python, uso o anythingLLM para tudo.

Grosso modo, o anythingLLM eh um openroute.ai local e gratuito.

Então o anythingLLM seria tipo o ollama certo? É o que estou usando atualmente para testar os modelos. Porém por conta da limitação que te falei o resultado é bem paia, mas vou testar com as dicas que você me deu, muito obrigado por seu tempo!
Mais ou menos. O diagrama do que imaginei eh: aplicacao => api anythingLLM => modelo LLM (que poder ser ollama, api chatGPT, claude, etc) Hoje dentro da aplicacao voce usa as chamadas direto do ollama - funciona, mas fica engessado e voce tem de fazer tudo. A ideia: - Instala o anythingLLM em um docker (ele eh semelhante ao LMStudio), acesse via gui web - Dentro do anythingLLM via GUI voce configura os LLMs que deseja acessar (que pode inclusive ser o ollama, mas tambem podem ser outros) - O anythingLLM tem chat onde voce pode testar a conexao com o LLM - tudo ok ? entao agora eh conectar a aplicacao no anything. - Dentro da aplicacao, ao inves de chamar o langchain ou outras coisas, execute apenas a api do anythingLLM, dessa forma sua aplicacao via 'agnostica' quanto ao LLM utilizado. - Grosso modo, eh o que openrouter.ai faz: separa a aplicacao do LLM. - Se quiser tornar as coisas ainda mais interessantes, crie uma app em flask e faca esta aplicacao acessar o anythingLLM. E tua aplicacao acessa os endpoints deste flask. Assim: aplicacao => app flask so para direcionar => api anythingLLM => LLM desejado. - Vantagem ? Separar a aplicacao do LLM (fica agnostica). Se a qualquer momento quiser tirar o anythingLLM e testar direto o LLM desejado, eh so fazer no app em flask, sem mexer nenhuma linha na aplicacao de producao. - Por que criar tantas camadas ? O formato de conexao e uso dos LLMs esta mudando muito rapido - colocar um "wrapper" (flask) no meio permite estabilizar a aplicacao e mudar a forma de trabalho sem se preocupar (p.ex. acrescentar MCPs e agentes no meio do caminho). Ideia - aplicacao eh uma coisa, conexao com LLM eh outra.