API de incrustación compatible de OpenAI que usa transformador de oraciones para incrustaciones
Imagen de contenedor: ghcr.io/substratusai/stapi
¡Apoye el proyecto agregando una estrella! ❤️
Únase a nosotros en Discord:
Hay 2 opciones para instalar Stapi: Docker o instalación local de Python.
Ejecute la API localmente usando Docker:
docker run -p 8080:8080 -d ghcr.io/substratusai/stapiInstale y ejecute el servidor API localmente usando Python. Solo admite Python 3.9, 3.10 y 3.11.
Clon el repositorio:
git clone https://github.com/substratusai/stapi
cd stapiInstalar dependencias:
pip3 install -r requirements.txtEjecute el servidor web:
uvicorn main:app --port 8080 --reloadDespués de instalar Stapi, puede visitar los documentos de API en http: // localhost: 8080/documentos
También puede usar Curl para obtener incrustaciones:
curl http://localhost:8080/v1/embeddings
-H " Content-Type: application/json "
-d ' {
"input": "Your text string goes here",
"model": "all-MiniLM-L6-v2"
} 'Incluso el cliente Operai Python se puede usar para obtener incrustaciones:
import openai
openai . api_base = "http://localhost:8080/v1"
openai . api_key = "this isn't used but openai client requires it"
model = "all-MiniLM-L6-v2"
embedding = openai . Embedding . create ( input = "Some text" , model = model )[ "data" ][ 0 ][ "embedding" ]
print ( embedding )Cualquier modelo compatible con transformadores de oraciones también debe funcionar como está con Stapi. Aquí hay una lista de modelos previamente capacitados disponibles con transformadores de oraciones.
Por defecto, el modelo all-MiniLM-L6-v2 se usa y precarga al inicio. Puede precargar cualquier modelo compatible estableciendo la variable de entorno MODEL .
Por ejemplo, si desea precargar el multi-qa-MiniLM-L6-cos-v1 , puede ajustar el comando docker run así:
docker run -e MODEL=multi-qa-MiniLM-L6-cos-v1 -p 8080:8080 -d
ghcr.io/substratusai/sentence-transformers-api Tenga en cuenta que Stapi solo servirá al modelo con el que está precargado. Debe crear otra instancia de Stapi para servir a otro modelo. El parámetro model como parte del cuerpo de solicitud simplemente se ignora.
Es fácil utilizar el servidor de incrustación con varias otras herramientas porque la API es compatible con la API de incrustación de OpenAI.
Puede usar el módulo Text2Vec-Openai de Weaviate y usar el punto final compatible Stapi OpenAI.
En su esquema tejido, use la siguiente configuración del módulo, suponiendo que el punto final Stapi esté disponible en http://stapi:8080 :
"vectorizer": "text2vec-openai",
"moduleConfig": {
"text2vec-openai": {
"model": "davinci",
"baseURL": "http://stapi:8080"
}
}
Para la tecla API de OpenAI que puede usar cualquier clave, no se verificará.
Lea la guía Weaviate Stapi para obtener más detalles.
No dude en contactar a cualquiera de nosotros: