Caution
This project is currently NOT ready. This project is in early development and may contain bugs or incomplete features. Use with caution in production environments.
Chat with your repo in under 2 minutes using GitHub Actions on supported Cloud providers.
Repochat is a LLM chatbot with stateless data ingestion capabilities through its API.
- A supported cloud provider credentials ;
- An OpenAI API key.
jobs:
steps:
- name: Deploy a convenient chatbot for your repo
id: deploy_repochat
uses: flavienbwk/repochat-action@v0
if: github.ref == 'refs/heads/main'
with:
dirs_to_scan: "./example,README.md" # comma-separated glob dirs to analyze from this repo (required)
openai_api_key: ${{ secrets.OPENAI_API_KEY }} # (required)
openai_model_type_inference: "gpt-4o-mini" # (required)
openai_model_type_embedding : "text-embedding-3-small" # (required)
cloud_provider: 'scaleway' # (required)
provider_key_id: ${{ secrets.PROVIDER_KEY_ID }}
provider_key_secret: ${{ secrets.PROVIDER_KEY_SECRET }}
provider_project_id: ${{ secrets.PROVIDER_PROJECT_ID }}
provider_default_region: 'fr-par'
provider_default_zone: 'fr-par-2'
- name: Get container domain from precedent step
run: echo "DOMAIN=${{ steps.deploy_repochat.outputs.domain }}" >> $GITHUB_OUTPUT
id: repochat_domain- Scaleway
- Refer to Scaleway's documentation to generate API keys.
- Additional required parameters:
cloud_provider: 'scaleway'provider_key_id: ${{ secrets.PROVIDER_KEY_ID }}provider_key_secret: ${{ secrets.PROVIDER_KEY_SECRET }}provider_project_id: ${{ secrets.PROVIDER_PROJECT_ID }}provider_default_region: 'fr-par' # exampleprovider_default_zone: 'fr-par-2' # example
👉 Deploy locally for directory serving...
-
Copy repo/documents/files to be ingested under
./api/example/ -
Copy and update env variables
cp .env.example .env
-
Run the Docker container
docker compose -f dir.docker-compose.yml up -d
-
Access the app at
http://localhost:3001
👉 Deploy locally as a stateless API...
make dev-
Increase repochat's version in
./package.json -
Run build and commit latest edits:
npm run build # git add && git commit && git push... -
Merge on
mainThis will create a release based on
package.jsonand push the:latestDocker image.
- Directory data chat
- API data chat
- GitHub Actions release
- Secure ingestion endpoint (/api/ingest)
- Secure RepoChat with optional password
Vercel is very limited when deploying everything but JS. First, ChromaDB (and any sqlite-based library) is not supported in Vercel. Then, this project uses a FastAPI Python API that requires more storage than Vercel's 250MB bundle limit.