
configs/ dossiers.Open Server est ma tentative de recréer un serveur compatible OpenAI pour générer du texte, des images, des incorporations et de les stocker dans des bases de données vectorielles. Il comprend également une fonctionnalité de chat.
La demande et les réponses du serveur sont très similaires à l'API d'OpenAI avec des champs supplémentaires nécessaires pour différents fournisseurs. Il utilise Langchain pour la partie LLM (robuste et puissant avec des rappels) et les SDK de fournisseur pour la génération d'images et plus encore.
Pour installer les packages requis:
pip install -r requirements.txt
Pour exécuter le serveur:
python -m openserver.main
Remarque : Pour le support GPU, vous devez installer manuellement Pytorch et Llama-Cpp-Python , en fonction de votre type GPU (CUDA & ROCM).
Cette section répertorie les fonctionnalités clés implémentées dans Open Server:
configs/ dossiers.Ce fichier est utilisé pour stocker les clés API, les URL et d'autres informations similaires. Il a une structure YAML et peut être utilisé pour configurer divers aspects du serveur.
Exemple de config.yaml :
OPENAI_API_KEY : YOUR_OPEN_API_KEY
PALM_API_KEY : YOUR_PALM_API_KEY
DB_NAME : test
DB_HOST : localhost
DB_USERNAME : admin
DB_PASSWORD : admin
# Add more configuration options as needed...Ces configurations sont stockées dans des fichiers séparés pour une meilleure organisation et une meilleure modularité. Chaque fichier de configuration suit la structure YAML.
Exemple LLM Config ( llm_config.yaml ):
chat_providers :
palm :
name : palm
models :
- " models/text-bison-001 "
available : true
# Add more LLM configs as needed... Exemple de configuration d'image ( image_config.yaml ):
image_models :
novita :
name : novita
models :
- " dynavisionXLAllInOneStylized_release0534bakedvae_129001.safetensors "
available : true
api_key : true
api_key_name : NOVITA_API_KEY
# Add more image configs as needed... Exemple d'invite Config ( prompts_config.yaml ):
prompts :
function_call :
name : " function_call "
file : " /prompts/function_call.txt "
# Add more prompt configs as needed... Exemple de configuration de base de données vectorielle ( vectordb_config.yaml ):
embeddings :
cohere :
name : cohere
models :
- " embed-english-light-v2.0 "
- " embed-english-v2.0 "
available : true
api_key : true
vectordbs :
chromadb :
available : true
# Add more vector database configs as needed...N'hésitez pas à modifier et à étendre ces configurations en fonction de vos besoins spécifiques.
| Fournisseur | Achèvement | Chat | Fonction d'appel | Streaming | ||
|---|---|---|---|---|---|---|
| ------------- | ------------- | ------------- | ------------- | ------------- | ||
| Openai | ✅ | ✅ | ✅ | ✅ | ||
| adhérer | ✅ | ✅ | ✅ | |||
| étreinte | ✅ | ✅ | ||||
| ensemble-ai | ✅ | ✅ | ✅ * | ✅ | ||
| ✅ | ✅ | ✅ | ✅ | |||
| AI21 | ✅ | ✅ | ✅ | |||
| feux d'artifice | ✅ | ✅ | ✅ * | ✅ | ||
| lama-cpp-python | ✅ | ✅ | ✅ |
| Fournisseur | Txt2img | Img2img | Haut de gamme | ||
|---|---|---|---|---|---|
| ------------- | ------------- | ------------- | ------------- | ||
| Openai | ✅ | ✅ | |||
| ensemble-ai | ✅ | ||||
| novita | ✅ | ✅ | ✅ | ||
| segmind | ✅ | ✅ |
Palm, étreinte, Openai, Gradient, Cohere
chromadb, lancedb, milvus, pintecone, qdrant, redis, weavate
Pour contribuer: cloner le repo localement -> faire un changement -> soumettre un PR avec le changement.
Voici comment modifier le repo localement: Étape 1: cloner le repo
git clone https://github.com/mj23978/openserver.git
Étape 2: Accédez au projet et installez les dépendances:
cd openserver
pip install -r requirements.txt
Étape 3: Soumettez un RP avec vos modifications!