Ce référentiel contient un système basé sur la rouille pour gérer les incorporations vectorielles et les interroger à l'aide d'une base de données vectorielle soutenue par PostgreSQL. Le système est conçu pour gérer la génération, le stockage et les requêtes d'intégration.
Le système est composé de plusieurs modules qui gèrent différents aspects du processus d'incorporation et de requête:
src/
├── app/
│ ├── commands.rs
│ ├── config.rs
│ └── constants.rs
├── embedding/
│ ├── run_embedding.rs
│ └── vector_embedding.rs
├── main.rs
├── tests/
│ ├── setup_docker.rs
│ ├── test_pgclient.rs
│ ├── test_query_vector.rs
│ ├── test_run_embedding.rs
│ └── test_vector_embedding.rs
├── vectordb/
│ ├── pg_vector.rs
│ └── query_vector.rs
├── lib.rs
├── vectordb/mod.rs
├── tests/mod.rs
├── embedding/mod.rs
└── app/mod.rs
nomic-embed-text ou modèle similaire.Clone le référentiel:
git clone https://github.com/rupeshtr78/pg-vector-embed-rust.git
cd pg-vector-embed-rustInstallez les dépendances:
cargo buildDémarrez la base de données vectorielle PostgreSQL (sinon déjà en cours d'exécution).
Le service Ollama devrait être exécuté avec le modèle spécifié.
Exécutez l'application:
cargo run
L'application prend en charge diverses commandes et sous-communs. Utilisez l'indicateur --help pour voir les options disponibles:
cargo run -- --help
cargo run -- write --input " dog sound is called bark " --input " cat sounds is called purr " --model " nomic-embed-text " --table " from_rust2 " --dim 768 --log-level " debug "
cargo run -- query --input " who is barking " --model " nomic-embed-text " --table " from_rust2 " Les paramètres de configuration pour les demandes d'intégration et les connexions de la base de données sont gérés dans src/app/config.rs . Vous pouvez modifier ces paramètres au besoin.
run_embedding pour générer des intégres et persistez dans la base de données.run_query pour interroger la base de données pour les voisins les plus proches en fonction des intégres vectoriels. Le référentiel comprend une suite complète de tests pour s'assurer que le système fonctionne correctement. Pour exécuter les tests:
cargo test Les contributions sont les bienvenues! Veuillez lire le fichier contribution.md pour plus de détails sur la façon de contribuer à ce projet.
Ce projet est autorisé en vertu de la licence MIT - voir le fichier de licence pour plus de détails.
N'hésitez pas à personnaliser ce ReadMe en fonction de vos besoins spécifiques et de vos détails de projet.