geqintan commited on
Commit
16320e6
·
1 Parent(s): 0f6e960
Files changed (2) hide show
  1. app copy.py +38 -0
  2. 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
- # 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
 
 
 
 
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")