diff options
author | Lain Soykaf <lain@lain.com> | 2024-05-28 12:31:12 +0400 |
---|---|---|
committer | Lain Soykaf <lain@lain.com> | 2024-05-28 12:31:12 +0400 |
commit | 3b4be5daa2c24d674665d6bc490e5d8f0878dd6e (patch) | |
tree | eca0c6d7754dd4c824f32cb262fe2d815400bcec /supplemental/search/fastembed-api/fastembed-server.py | |
parent | 6e51845d44cd0cee89d9ad17faee4754435d582e (diff) | |
parent | 25903a4996d12306d454be960a0a7478541b1879 (diff) | |
download | pleroma-3b4be5daa2c24d674665d6bc490e5d8f0878dd6e.tar.gz pleroma-3b4be5daa2c24d674665d6bc490e5d8f0878dd6e.zip |
Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into pleroma-secure-mode
Diffstat (limited to 'supplemental/search/fastembed-api/fastembed-server.py')
-rw-r--r-- | supplemental/search/fastembed-api/fastembed-server.py | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/supplemental/search/fastembed-api/fastembed-server.py b/supplemental/search/fastembed-api/fastembed-server.py new file mode 100644 index 000000000..02da69db2 --- /dev/null +++ b/supplemental/search/fastembed-api/fastembed-server.py @@ -0,0 +1,27 @@ +from fastembed import TextEmbedding +from fastapi import FastAPI +from pydantic import BaseModel + +models = {} + +app = FastAPI() + +class EmbeddingRequest(BaseModel): + model: str + input: str + +@app.post("/v1/embeddings") +def embeddings(request: EmbeddingRequest): + model = models.get(request.model) or TextEmbedding(request.model) + models[request.model] = model + embeddings = next(model.embed(request.input)).tolist() + return {"data": [{"embedding": embeddings}]} + +@app.get("/health") +def health(): + return {"status": "ok"} + +if __name__ == "__main__": + import uvicorn + + uvicorn.run(app, host="0.0.0.0", port=11345) |