
configs/ Ordner gespeichert.Open Server ist mein Versuch, einen openAI -kompatiblen Server zum Generieren von Text, Bildern, Einbettungen und Speichern in Vektordatenbanken neu zu erstellen. Es enthält auch eine Chat -Funktionalität.
Die Anfrage und Antworten des Servers sind der OpenAI -API mit zusätzlichen Feldern sehr ähnlich, die für verschiedene Anbieter benötigt werden. Es verwendet Langchain für den LLM -Teil (robust und leistungsfähig mit Rückrufen) und Anbieter -SDKs für die Bildgenerierung und mehr.
So installieren Sie die erforderlichen Pakete:
pip install -r requirements.txt
Um den Server auszuführen:
python -m openserver.main
Hinweis : Für die GPU-Unterstützung müssen Sie Pytorch und Lama-CPP-Python basierend auf Ihrem GPU-Typ (CUDA & ROCM) manuell installieren.
In diesem Abschnitt werden die im Open Server implementierten wichtigsten Funktionen aufgeführt:
configs/ Ordner gespeichert.Diese Datei wird verwendet, um API -Schlüssel, URLs und ähnliche Informationen zu speichern. Es verfügt über eine YAML -Struktur und kann verwendet werden, um verschiedene Aspekte des Servers zu konfigurieren.
Beispiel 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...Diese Konfigurationen werden in separaten Dateien für eine bessere Organisation und Modularität gespeichert. Jede Konfigurationsdatei folgt der YAML -Struktur.
Beispiel LLM -Konfiguration ( llm_config.yaml ):
chat_providers :
palm :
name : palm
models :
- " models/text-bison-001 "
available : true
# Add more LLM configs as needed... Beispiel Bildkonfiguration ( 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... Beispiel Eingabeaufforderung ( prompts_config.yaml ):
prompts :
function_call :
name : " function_call "
file : " /prompts/function_call.txt "
# Add more prompt configs as needed... Beispiel Vector Database Config ( 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...Fühlen Sie sich frei, diese Konfigurationen entsprechend Ihren spezifischen Anforderungen zu ändern und zu erweitern.
| Anbieter | Fertigstellung | Chat | Funktionsaufruf | Streaming | ||
|---|---|---|---|---|---|---|
| ------------- | ------------- | ------------- | ------------- | ------------- | ||
| Openai | ✅ | ✅ | ✅ | ✅ | ||
| zusammenhängen | ✅ | ✅ | ✅ | |||
| Umarmung | ✅ | ✅ | ||||
| zusammen | ✅ | ✅ | ✅* | ✅ | ||
| Google-Palm | ✅ | ✅ | ✅ | ✅ | ||
| AI21 | ✅ | ✅ | ✅ | |||
| Feuerwerk | ✅ | ✅ | ✅* | ✅ | ||
| Lama-CPP-Python | ✅ | ✅ | ✅ |
| Anbieter | Txt2img | IMG2IMG | Gehoben | ||
|---|---|---|---|---|---|
| ------------- | ------------- | ------------- | ------------- | ||
| Openai | ✅ | ✅ | |||
| zusammen | ✅ | ||||
| Novita | ✅ | ✅ | ✅ | ||
| Segmind | ✅ | ✅ |
Handfläche, Umarmung, Openai, Gradient, Zusammensetzung
Chromadb, Lancyb, Milvus, Tinecone, Qdrant, Redis, Waviate
Zu beitragen: Klonen Sie das Repo lokal -> Änderung vornehmen -> eine PR mit der Änderung einreichen.
So modifizieren Sie das Repo lokal: Schritt 1: Klonen Sie das Repo
git clone https://github.com/mj23978/openserver.git
Schritt 2: Navigieren Sie in das Projekt und installieren Sie Abhängigkeiten:
cd openserver
pip install -r requirements.txt
Schritt 3: Senden Sie eine PR mit Ihren Änderungen ein!