Warning
This project is in early development and may contain bugs. Use with caution in production environments.
Chat with your repo in under 2 minutes using GitHub Actions on supported Cloud providers.
Features:
- ✨ A nice web UI
Available as a GitHub Action
- 💾 Stateful ingestion mode (directory mode)
- 🔄 Sateless ingestion via API (api mode)
- 🔐 Optional password on web UI
- A supported cloud provider credentials ;
- An OpenAI API key.
Easily add RepoChat to your project using GitHub Actions:
jobs:
steps:
- name: Deploy a convenient chatbot for your repo
id: deploy_repochat
uses: flavienbwk/repochat-action@v0
with:
# All parameters not explicitly marked as "optional" are required
dirs_to_scan: "./example,README.md" # comma-separated glob dirs to analyze
interface_password: ${{ secrets.INTERFACE_PASSWORD }} # optional
openai_api_key: ${{ secrets.OPENAI_API_KEY }}
openai_model_type_inference: "gpt-4o-mini"
openai_model_type_embedding : "text-embedding-3-small"
provider_name: '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'
provider_default_zone: 'fr-par-2'
- name: Get RepoChat domain
run: echo "DOMAIN=${{ steps.deploy_repochat.outputs.domain }}" >> $GITHUB_OUTPUT
id: repochat_domainGet a practical implementation example with .github/workflows/deploy.yml.
- Scaleway
-
Additional required parameters:
provider_name: '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' # example provider_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...
👉 Run RepoChat for development...
-
Clone this repo
[email protected]:flavienbwk/repochat-action.git
-
Copy and update env variables
cp .env.example .env
-
Run the local stack
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
- Maintain state over S3 (would allow containers autoscaling)
Vercel is very limited when it comes to 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.