Um simples bot discórdio que permite procurar mensagens semanticamente.
Eu só iniciei este projeto porque queria aprender sobre incorporação de palavras e bancos de dados de vetores, por isso não tenho certeza se jamais terminarei. Se você quiser usá -lo, terá que descobrir como hospedá -lo sozinho.
Isso claramente ainda é um trabalho em andamento. Ainda precisa de muito trabalho, especialmente no lado do banco de dados. Os bancos de dados vetoriais são relativamente fáceis de usar, mas difíceis de manter.
Além disso, a razão pela qual eu o enquadrei como um bot da Discord é porque, por mais que eu goste da plataforma, sua funcionalidade de pesquisa não é tão boa. Não tenho certeza se chegarei a um ponto em que posso hospedar esse bot para que outras pessoas usem, mas se o fizer, atualizarei esta seção.
Uma última coisa, não tenho certeza se estou usando as abstrações/estrutura certas, pois não tenho muita experiência com o TypeScript. No entanto, tentei aproveitar alguma abstração para facilitar a troca do banco de dados e do serviço de incorporação. Se você tiver alguma sugestão, por favor me avise.
Seu principal objetivo é ajudá -lo a encontrar mensagens que você sabe que estão em um servidor (ou não), mas você não consegue se lembrar exatamente de como elas foram formuladas. Ele usa o modelo ADA do OpenAI para gerar incorporações para cada mensagem e armazená -las em um banco de dados vetorial (QDRANT).
Você pode procurar mensagens semanticamente semelhantes a uma determinada consulta.
Você precisa criar um bot Discord e adicioná -lo ao seu servidor.
Você também precisa criar uma conta OpenAI e obter uma chave da API.
cp .env.template .env # And fill in the missing valuesSupondo que você tenha o Node e o Docker instalados, você pode executar os seguintes comandos para iniciar o bot no modo de desenvolvimento:
npm install
npm run commands:deploy # Deploys bot commands to your dev server (you need to do this every time you add a new command)
bash start-db.sh # Starts a docker container with a vector database
npm run start:dev