Chatbot RAG sans tête multi-tenant.
Il s'agit d'une implémentation simple d'un chatbot multi-tenant qui utilise la génération augmentée de récupération.
Une partie de ce code provient de Wanderling, mais toutes les fonctions et le moteur de règles spécifiques au jeu ont été supprimés (pas encore prêts à l'ouvrir en source)
Copiez le fichier example.env
dans .env
Mettez à jour les valeurs pour openai et Pinecone.
make dev
ouvrez http://localhost:8080/swagger-ui/index.html
Les profils Spring sont utilisés pour configurer l'application.
Voir quelques exemples de configurations (./src/main/resources/)[./src/main/resources/]
La configuration peut être définie dans YAML, Propriétés ou Variables d'environnement.
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
Voir la configuration de l'application dans application-opensearch.yml pour plus de détails.
SPRING_PROFILES_ACTIVE=opensearch
OPENAI_ENABLED=true
OPENAI_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxx
OPENAI_CHAT_MODEL_ID=gpt-3.5-turbo
OPENSEARCH_URL=https://localhost:9200
Si vous stockez des documents dans votre référentiel, vous pouvez facilement les télécharger sur mainbot.
Tirez parti de l'action GitHub pour télécharger des fichiers texte/markdown directement sur le robot principal.
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
Nous avons également créé un plugin Backstage à intégrer avec mainbot.
En combinant l'action Github et le plugin Techdocs, vous pouvez rendre toute votre documentation immédiatement disponible dans Backstage et consultable dans mainbot.