
configs/ Carper.Open Server es mi intento de recrear un servidor compatible de OpenAI para generar texto, imágenes, incrustaciones y almacenarlos en bases de datos vectoriales. También incluye una funcionalidad de chat.
La solicitud y las respuestas del servidor son muy similares a la API de OpenAI con campos adicionales necesarios para diferentes proveedores. Utiliza Langchain para la parte LLM (robusta y potente con devoluciones de llamada) y SDK de proveedores para la generación de imágenes y más.
Para instalar los paquetes requeridos:
pip install -r requirements.txt
Para ejecutar el servidor:
python -m openserver.main
Nota : Para el soporte de GPU, debe instalar manualmente Pytorch y Llama-CPP-Python , según su tipo de GPU (CUDA y ROCM).
Esta sección enumera las características clave implementadas en Open Server:
configs/ Carper.Este archivo se utiliza para almacenar claves API, URL y otra información similar. Tiene una estructura YAML y puede usarse para configurar varios aspectos del servidor.
Ejemplo 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...Estas configuraciones se almacenan en archivos separados para una mejor organización y modularidad. Cada archivo de configuración sigue la estructura YAML.
Ejemplo LLM config ( llm_config.yaml ):
chat_providers :
palm :
name : palm
models :
- " models/text-bison-001 "
available : true
# Add more LLM configs as needed... Ejemplo de configuración de imagen ( 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... Ejemplo de configuración de indica ( prompts_config.yaml ):
prompts :
function_call :
name : " function_call "
file : " /prompts/function_call.txt "
# Add more prompt configs as needed... Ejemplo de configuración de base de datos vectorial ( 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...Siéntase libre de modificar y extender estas configuraciones de acuerdo con sus necesidades específicas.
| Proveedor | Terminación | Charlar | Funciones llamadas | Transmisión | ||
|---|---|---|---|---|---|---|
| ------------- | ------------- | ------------- | ------------- | ------------- | ||
| opadai | ✅ | ✅ | ✅ | ✅ | ||
| adherirse | ✅ | ✅ | ✅ | |||
| cara de abrazo | ✅ | ✅ | ||||
| juntos-ai | ✅ | ✅ | ✅* | ✅ | ||
| palo de Google | ✅ | ✅ | ✅ | ✅ | ||
| AI21 | ✅ | ✅ | ✅ | |||
| fuegos artificiales | ✅ | ✅ | ✅* | ✅ | ||
| llama-cpp-python | ✅ | ✅ | ✅ |
| Proveedor | Txt2img | Img2img | Escala | ||
|---|---|---|---|---|---|
| ------------- | ------------- | ------------- | ------------- | ||
| opadai | ✅ | ✅ | |||
| juntos-ai | ✅ | ||||
| novita | ✅ | ✅ | ✅ | ||
| segmind | ✅ | ✅ |
Palm, Huggingface, OpenAi, Gradiente, Cohere
ChromadB, LancedB, Milvus, Pinecone, Qdrant, Redis, Weaviate
Para contribuir: Clone el repositorio localmente -> hacer un cambio -> Envíe un PR con el cambio.
Aquí le mostramos cómo modificar el repositorio localmente: Paso 1: Clon el repositorio
git clone https://github.com/mj23978/openserver.git
Paso 2: navegue por el proyecto e instale dependencias:
cd openserver
pip install -r requirements.txt
Paso 3: ¡Envíe un PR con sus cambios!