update
Browse files- app copy.py +38 -0
- app.py +47 -23
app copy.py
ADDED
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from fastapi import FastAPI, Request
|
2 |
+
from pydantic import BaseModel
|
3 |
+
from sentence_transformers import SentenceTransformer
|
4 |
+
import numpy as np
|
5 |
+
|
6 |
+
app = FastAPI()
|
7 |
+
|
8 |
+
# Load the Sentence Transformer model
|
9 |
+
model = SentenceTransformer("BAAI/bge-large-zh-v1.5")
|
10 |
+
|
11 |
+
class EmbeddingRequest(BaseModel):
|
12 |
+
input: str
|
13 |
+
|
14 |
+
@app.post("/embeddings")
|
15 |
+
async def embeddings(request: EmbeddingRequest):
|
16 |
+
input_text = request.input
|
17 |
+
|
18 |
+
# Calculate embeddings
|
19 |
+
embeddings = model.encode(input_text)
|
20 |
+
|
21 |
+
# Format the embeddings in OpenAI compatible format
|
22 |
+
data = {
|
23 |
+
"object": "list",
|
24 |
+
"data": [
|
25 |
+
{
|
26 |
+
"object": "embedding",
|
27 |
+
"embedding": embeddings.tolist(),
|
28 |
+
"index": 0
|
29 |
+
}
|
30 |
+
],
|
31 |
+
"model": "BAAI/bge-large-zh-v1.5",
|
32 |
+
"usage": {
|
33 |
+
"prompt_tokens": len(input_text),
|
34 |
+
"total_tokens": len(input_text)
|
35 |
+
}
|
36 |
+
}
|
37 |
+
|
38 |
+
return data
|
app.py
CHANGED
@@ -1,38 +1,62 @@
|
|
1 |
-
from fastapi import FastAPI, Request
|
2 |
-
from pydantic import BaseModel
|
3 |
from sentence_transformers import SentenceTransformer
|
4 |
import numpy as np
|
|
|
|
|
|
|
|
|
|
|
5 |
|
6 |
app = FastAPI()
|
7 |
|
8 |
-
|
9 |
-
|
|
|
|
|
|
|
|
|
10 |
|
11 |
class EmbeddingRequest(BaseModel):
|
12 |
-
input: str
|
13 |
|
14 |
@app.post("/embeddings")
|
15 |
async def embeddings(request: EmbeddingRequest):
|
16 |
input_text = request.input
|
17 |
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
29 |
}
|
30 |
-
],
|
31 |
-
"model": "BAAI/bge-large-zh-v1.5",
|
32 |
-
"usage": {
|
33 |
-
"prompt_tokens": len(input_text),
|
34 |
-
"total_tokens": len(input_text)
|
35 |
}
|
36 |
-
}
|
37 |
|
38 |
-
|
|
|
|
|
|
|
|
1 |
+
from fastapi import FastAPI, Request, HTTPException
|
2 |
+
from pydantic import BaseModel, Field
|
3 |
from sentence_transformers import SentenceTransformer
|
4 |
import numpy as np
|
5 |
+
import logging
|
6 |
+
|
7 |
+
# 设置日志记录
|
8 |
+
logging.basicConfig(level=logging.INFO)
|
9 |
+
logger = logging.getLogger(__name__)
|
10 |
|
11 |
app = FastAPI()
|
12 |
|
13 |
+
try:
|
14 |
+
# Load the Sentence Transformer model
|
15 |
+
model = SentenceTransformer("BAAI/bge-large-zh-v1.5")
|
16 |
+
except Exception as e:
|
17 |
+
logger.error(f"Failed to load model: {e}")
|
18 |
+
raise HTTPException(status_code=500, detail="Model loading failed")
|
19 |
|
20 |
class EmbeddingRequest(BaseModel):
|
21 |
+
input: str = Field(..., min_length=1, max_length=1000)
|
22 |
|
23 |
@app.post("/embeddings")
|
24 |
async def embeddings(request: EmbeddingRequest):
|
25 |
input_text = request.input
|
26 |
|
27 |
+
try:
|
28 |
+
if not input_text:
|
29 |
+
return {
|
30 |
+
"object": "list",
|
31 |
+
"data": [],
|
32 |
+
"model": "BAAI/bge-large-zh-v1.5",
|
33 |
+
"usage": {
|
34 |
+
"prompt_tokens": 0,
|
35 |
+
"total_tokens": 0
|
36 |
+
}
|
37 |
+
}
|
38 |
+
|
39 |
+
# Calculate embeddings
|
40 |
+
embeddings = model.encode(input_text)
|
41 |
+
|
42 |
+
# Format the embeddings in OpenAI compatible format
|
43 |
+
data = {
|
44 |
+
"object": "list",
|
45 |
+
"data": [
|
46 |
+
{
|
47 |
+
"object": "embedding",
|
48 |
+
"embedding": embeddings.tolist(),
|
49 |
+
"index": 0
|
50 |
+
}
|
51 |
+
],
|
52 |
+
"model": "BAAI/bge-large-zh-v1.5",
|
53 |
+
"usage": {
|
54 |
+
"prompt_tokens": len(input_text),
|
55 |
+
"total_tokens": len(input_text)
|
56 |
}
|
|
|
|
|
|
|
|
|
|
|
57 |
}
|
|
|
58 |
|
59 |
+
return data
|
60 |
+
except Exception as e:
|
61 |
+
logger.error(f"Error processing embeddings: {e}")
|
62 |
+
raise HTTPException(status_code=500, detail="Internal Server Error")
|