Bot de bate-papo RAG sem cabeça e multilocatário.
Esta é uma implementação simples de um bot de bate-papo multilocatário que usa Retrieval Augmented Generation.
Parte desse código veio do Wanderling, mas todas as funções específicas do jogo e o mecanismo de regras foram eliminados (ainda não estou pronto para abrir o código-fonte)
Copie o arquivo example.env
para .env
Atualize os valores para openai e pinecone.
make dev
abra http://localhost:8080/swagger-ui/index.html
Spring Profiles são usados para configurar o aplicativo.
Veja alguns exemplos de configurações (./src/main/resources/)[./src/main/resources/]
A configuração pode ser definida em variáveis YAML, Propriedades ou Ambiente.
OPENAI_ENABLED=true
OPENAI_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxx
OPENAI_CHAT_MODEL_ID=gpt-3.5-turbo
PINECONE_ENABLED=true
PINECONE_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
PINECONE_PROJECT_NAME=my-project
PINECONE_INDEX=my-index
PINECONE_ENVIRONMENT=us-east4-gcp
APP_SECURITY_ENABLED=false
Consulte a configuração do aplicativo em application-opensearch.yml para obter mais detalhes.
SPRING_PROFILES_ACTIVE=opensearch
OPENAI_ENABLED=true
OPENAI_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxx
OPENAI_CHAT_MODEL_ID=gpt-3.5-turbo
OPENSEARCH_URL=https://localhost:9200
Se você armazenar documentos em seu repositório, poderá carregá-los facilmente no mainbot.
Aproveite o GitHub Action para fazer upload de arquivos de texto/markdown diretamente para o mainbot.
name : Upload Files to Mainbot
on :
workflow_dispatch : {} # Manually trigger the workflow
push :
branches :
- main
paths :
- ' docs/** '
- ' README.md '
jobs :
upload :
runs-on : ubuntu-latest
steps :
- name : Checkout repository
uses : actions/checkout@v2
- name : Upload Files
uses : savantly-net/mainbot-github-action@main
with :
glob-patterns : ' *.md ' # Set your file pattern here
namespace : ' /mainbot-documents '
api-url : ' https://mainbot.my-company.apps.savantly.cloud '
client-id : ${{ secrets.MAINBOT_CLIENT_ID }}
client-secret : ${{ secrets.MAINBOT_CLIENT_SECRET }}
token-endpoint : https://oidc.apps.savantly.cloud/realms/savantly/protocol/openid-connect/token
Também construímos um plugin Backstage para integração com o mainbot.
Combinando a ação do Github e o plugin Techdocs, você pode disponibilizar toda a sua documentação imediatamente no Backstage e pesquisável no mainbot.