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.