File size: 1,152 Bytes
77320e4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
from fastapi import APIRouter, File, Form, UploadFile
from typing import List, Optional

try:
    import infiagent
    from infiagent.services.chat_complete_service import predict
except ImportError:
    print("import infiagent failed, please install infiagent by 'pip install .' in the pipeline directory of ADA-Agent")
    from ..services.chat_complete_service import predict

predict_router = APIRouter()


@predict_router.post("/predict")
async def chat_predict(
    prompt: str = Form(...),
    model_name: str = Form(...),
    psm: Optional[str] = Form(None),
    dc: Optional[str] = Form(None),
    temperature: Optional[str] = Form(None),
    top_p: Optional[str] = Form(None),
    top_k: Optional[str] = Form(None),
    files: List[UploadFile] = File(...)
):
    kwargs = {}
    if psm:
        kwargs['psm'] = psm
    if dc:
        kwargs['dc'] = dc
    if temperature:
        kwargs['temperature'] = float(temperature)
    if top_p:
        kwargs['top_p'] = float(top_p)
    if top_k:
        kwargs['top_k'] = float(top_k)

    response = await predict(prompt, model_name, files, **kwargs)

    return {
        "answer": response
    }