Contributions are welcome, and are accepted via pull requests. Please review these guidelines before submitting any pull requests.
Clone your fork, then install the dev dependencies:
composer install
You can use the devx/docker-compose.yml
file to run a local postgresql database with the pgvector extension available.
docker-compose up -d
- Fork the project
- Create a new branch
- Code, test, commit and push
- Open a pull request detailing your changes.
- Please ensure the coding style running
composer lint
. - Send a coherent commit history, making sure each individual commit in your pull request is meaningful.
- You may need to rebase to avoid merge conflicts.
- Please remember that we follow SemVer.
Refactor your code:
composer refactor
Lint your code:
composer lint
Run all tests:
composer test
Check code quality:
composer test:refactor
Check types:
composer test:types
Unit tests:
composer test:unit
You'll need a API key from OPENAI and export it as a env var.
You also need to have a postgresql database running with the same parameters
as in the docker-compose.yaml
file from devx
folder.
Then run this sql query to create the table for the tests:
CREATE EXTENSION vector;
CREATE TABLE IF NOT EXISTS test_place (
id SERIAL PRIMARY KEY,
content text,
type text,
sourcetype text,
sourcename text,
embedding vector
);
CREATE TABLE IF NOT EXISTS test_doc (
id SERIAL PRIMARY KEY,
content text,
type text,
sourcetype text,
sourcename text,
embedding vector,
chunknumber int
);
Then run:
composer test:int
You can set host names and keys for the various services involved in integration tests using these environment variables:
OPENAI_API_KEY
MISTRAL_API_KEY
ANTHROPIC_API_KEY
ASTRADB_ENDPOINT
ASTRADB_TOKEN
ELASTIC_URL
PGVECTOR_HOST
REDIS_HOST
MILVUS_HOST
QDRANT_HOST
CHROMADB_HOST
OLLAMA_URL
LAKERA_ENDPOINT
LAKERA_API_KEY
TYPESENSE_API_KEY
TYPESENSE_NODE