diff --git a/docker/embedding-api/Dockerfile b/docker/embedding-api/Dockerfile new file mode 100644 index 0000000000..523cee4e5b --- /dev/null +++ b/docker/embedding-api/Dockerfile @@ -0,0 +1,8 @@ +FROM python:3.10-slim + +WORKDIR /app +COPY embedding_api.py . + +RUN pip install fastapi uvicorn sentence-transformers + +CMD ["uvicorn", "embedding_api:app", "--host", "0.0.0.0", "--port", "8001"] diff --git a/docker/embedding-api/embedding_api.py b/docker/embedding-api/embedding_api.py new file mode 100644 index 0000000000..55ad80717d --- /dev/null +++ b/docker/embedding-api/embedding_api.py @@ -0,0 +1,19 @@ +from fastapi import FastAPI +from pydantic import BaseModel +from typing import List +from sentence_transformers import SentenceTransformer + +app = FastAPI() +model = SentenceTransformer("sentence-transformers/all-MiniLM-L6-v2") + +class EmbeddingRequest(BaseModel): + input: List[str] + +@app.post("/v1/embeddings") +async def embed(request: EmbeddingRequest): + embeddings = model.encode(request.input).tolist() + return { + "data": [{"embedding": emb, "index": i} for i, emb in enumerate(embeddings)], + "model": "sentence-transformers/all-MiniLM-L6-v2", + "object": "list" + }