File size: 1,187 Bytes
9ff5556
 
3f995e2
 
 
9ff5556
3f995e2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9ff5556
 
 
 
 
 
 
 
 
 
 
 
 
 
3f995e2
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
from pydantic import BaseModel
from fastapi.middleware.cors import CORSMiddleware
from transformers import AutoModel
from typing import List
import os, platform, time

# Your model loading and app initialization code
model = AutoModel.from_pretrained('jinaai/jina-embeddings-v2-base-en', trust_remote_code=True)

class Validation(BaseModel):
    prompt: List[str]

def generate_embeddings(x):
    start_time = time.time()
    embeddings = model.encode(x).tolist()
    end_time = time.time()
    time_taken = end_time - start_time  # Calculate the time taken

    return {
        "embeddings": embeddings,
        "time_taken": f"{time_taken:.2f} seconds",
        "Number_of_sentence_processed": len(x)
    }

from TextGen import app

app.add_middleware(
    CORSMiddleware,
    allow_origins=["*"],
    allow_credentials=True,
    allow_methods=["*"],
    allow_headers=["*"],
)

@app.get("/", tags=["Home"])
def api_home():
    return {'detail': 'Welcome to FastAPI TextGen Tutorial!'}


@app.post("/api/generate", summary="Generate embeddings", tags=["Generate"], response_model=Validation)
def inference(input_prompt: List[str]):
    return generate_embeddings(prompt=input_prompt)