Skip to content

Commit 89e56b6

Browse files
committed
generated file: api/routes/openai.py
1 parent d1276ed commit 89e56b6

File tree

1 file changed

+87
-0
lines changed

1 file changed

+87
-0
lines changed

Diff for: api/routes/openai.py

+87
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
from fastapi import APIRouter, HTTPException, Depends
2+
from fastapi.responses import JSONResponse
3+
from fastapi.encoders import jsonable_encoder
4+
5+
from .schemas.openai import OpenAIRequest, OpenAIResponse
6+
from dependencies.openai import openai_service
7+
from dependencies.auth import get_current_user
8+
9+
router = APIRouter(prefix="/api/v1/openai", tags=["OpenAI"])
10+
11+
@router.post("/complete", response_model=OpenAIResponse)
12+
async def complete_text(
13+
request: OpenAIRequest,
14+
current_user: dict = Depends(get_current_user)
15+
):
16+
"""
17+
Completes a given text using OpenAI's text completion API.
18+
"""
19+
try:
20+
response = await openai_service.complete_text(
21+
text=request.text,
22+
model=request.model,
23+
temperature=request.temperature,
24+
max_tokens=request.max_tokens
25+
)
26+
return JSONResponse(
27+
status_code=200,
28+
content=jsonable_encoder(
29+
{"response": response.choices[0].text}
30+
)
31+
)
32+
except Exception as e:
33+
raise HTTPException(
34+
status_code=500,
35+
detail=f"Error completing text: {str(e)}"
36+
)
37+
38+
@router.post("/translate", response_model=OpenAIResponse)
39+
async def translate_text(
40+
request: OpenAIRequest,
41+
current_user: dict = Depends(get_current_user)
42+
):
43+
"""
44+
Translates a given text using OpenAI's translation API.
45+
"""
46+
try:
47+
response = await openai_service.translate_text(
48+
text=request.text,
49+
source_language=request.source_language,
50+
target_language=request.target_language
51+
)
52+
return JSONResponse(
53+
status_code=200,
54+
content=jsonable_encoder(
55+
{"response": response.choices[0].text}
56+
)
57+
)
58+
except Exception as e:
59+
raise HTTPException(
60+
status_code=500,
61+
detail=f"Error translating text: {str(e)}"
62+
)
63+
64+
@router.post("/summarize", response_model=OpenAIResponse)
65+
async def summarize_text(
66+
request: OpenAIRequest,
67+
current_user: dict = Depends(get_current_user)
68+
):
69+
"""
70+
Summarizes a given text using OpenAI's summarization API.
71+
"""
72+
try:
73+
response = await openai_service.summarize_text(
74+
text=request.text,
75+
model=request.model
76+
)
77+
return JSONResponse(
78+
status_code=200,
79+
content=jsonable_encoder(
80+
{"response": response.choices[0].text}
81+
)
82+
)
83+
except Exception as e:
84+
raise HTTPException(
85+
status_code=500,
86+
detail=f"Error summarizing text: {str(e)}"
87+
)

0 commit comments

Comments
 (0)