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 installYou can use the devx/docker-compose.yml file to run a local postgresql database with the pgvector extension available.
docker-compose up -dIn the docker folder you can find a complete environment for running integration tests.
- 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.
Lint your code:
composer lintRun all tests:
composer testCheck type coverage:
composer test:type-coverageCheck types:
composer test:typesUnit tests:
composer test:unitYou'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.
This is the script for PostgreSQL:
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
);
This is the script for MariaDB:
CREATE DATABASE IF NOT EXISTS llphant;
GRANT ALL ON *.* TO 'root'@'%';
CREATE TABLE IF NOT EXISTS test_place (
id SERIAL PRIMARY KEY,
content text,
type text,
sourcetype text,
sourcename text,
embedding vector(3072) not null,
chunknumber int,
VECTOR INDEX (embedding)
);
CREATE TABLE IF NOT EXISTS test_doc (
id SERIAL PRIMARY KEY,
content text,
type text,
sourcetype text,
sourcename text,
embedding vector(1024) not null,
chunknumber int,
VECTOR INDEX (embedding)
);
Then run:
composer test:intYou 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
MARIADB_HOST