sachin
commited on
Commit
·
00efe9f
1
Parent(s):
5e6298f
api-server
Browse files- src/server/main.py +14 -8
src/server/main.py
CHANGED
@@ -1,8 +1,9 @@
|
|
1 |
import argparse
|
|
|
2 |
from typing import List
|
3 |
from abc import ABC, abstractmethod
|
4 |
import uvicorn
|
5 |
-
from fastapi import FastAPI, File, HTTPException, Query, Request, UploadFile
|
6 |
from fastapi.middleware.cors import CORSMiddleware
|
7 |
from fastapi.responses import RedirectResponse, StreamingResponse
|
8 |
from pydantic import BaseModel, Field
|
@@ -120,7 +121,7 @@ class TTSService(ABC):
|
|
120 |
class ExternalTTSService(TTSService):
|
121 |
async def generate_speech(self, payload: dict) -> requests.Response:
|
122 |
try:
|
123 |
-
base_url = "
|
124 |
return requests.post(
|
125 |
base_url,
|
126 |
json=payload,
|
@@ -224,7 +225,7 @@ async def chat(
|
|
224 |
logger.info(f"Received prompt: {chat_request.prompt}, src_lang: {chat_request.src_lang}")
|
225 |
|
226 |
try:
|
227 |
-
external_url = "
|
228 |
payload = {
|
229 |
"prompt": chat_request.prompt,
|
230 |
"src_lang": chat_request.src_lang,
|
@@ -281,7 +282,7 @@ async def transcribe_audio(
|
|
281 |
file_content = await file.read()
|
282 |
files = {"file": (file.filename, file_content, file.content_type)}
|
283 |
|
284 |
-
external_url = f"
|
285 |
response = requests.post(
|
286 |
external_url,
|
287 |
files=files,
|
@@ -330,7 +331,7 @@ async def translate(
|
|
330 |
|
331 |
logger.info(f"Received translation request: {len(request.sentences)} sentences, src_lang: {request.src_lang}, tgt_lang: {request.tgt_lang}")
|
332 |
|
333 |
-
external_url = "
|
334 |
|
335 |
payload = {
|
336 |
"sentences": request.sentences,
|
@@ -414,7 +415,7 @@ async def extract_text(
|
|
414 |
file_content = await file.read()
|
415 |
files = {"file": (file.filename, file_content, file.content_type)}
|
416 |
|
417 |
-
external_url = f"
|
418 |
response = requests.post(
|
419 |
external_url,
|
420 |
files=files,
|
@@ -481,7 +482,7 @@ async def visual_query(
|
|
481 |
"tgt_lang": visual_query_request.tgt_lang
|
482 |
})
|
483 |
|
484 |
-
external_url = f"
|
485 |
|
486 |
try:
|
487 |
file_content = await file.read()
|
@@ -554,7 +555,7 @@ async def speech_to_speech(
|
|
554 |
try:
|
555 |
file_content = await file.read()
|
556 |
files = {"file": (file.filename, file_content, file.content_type)}
|
557 |
-
external_url = f"
|
558 |
|
559 |
response = requests.post(
|
560 |
external_url,
|
@@ -585,6 +586,11 @@ async def speech_to_speech(
|
|
585 |
raise HTTPException(status_code=500, detail=f"External API error: {str(e)}")
|
586 |
|
587 |
if __name__ == "__main__":
|
|
|
|
|
|
|
|
|
|
|
588 |
parser = argparse.ArgumentParser(description="Run the FastAPI server.")
|
589 |
parser.add_argument("--port", type=int, default=8000, help="Port to run the server on.")
|
590 |
parser.add_argument("--host", type=str, default="0.0.0.0", help="Host to run the server on.")
|
|
|
1 |
import argparse
|
2 |
+
import os
|
3 |
from typing import List
|
4 |
from abc import ABC, abstractmethod
|
5 |
import uvicorn
|
6 |
+
from fastapi import FastAPI, File, HTTPException, Query, Request, UploadFile
|
7 |
from fastapi.middleware.cors import CORSMiddleware
|
8 |
from fastapi.responses import RedirectResponse, StreamingResponse
|
9 |
from pydantic import BaseModel, Field
|
|
|
121 |
class ExternalTTSService(TTSService):
|
122 |
async def generate_speech(self, payload: dict) -> requests.Response:
|
123 |
try:
|
124 |
+
base_url = f"{os.getenv('EXTERNAL_API_BASE_URL')}/v1/audio/speech"
|
125 |
return requests.post(
|
126 |
base_url,
|
127 |
json=payload,
|
|
|
225 |
logger.info(f"Received prompt: {chat_request.prompt}, src_lang: {chat_request.src_lang}")
|
226 |
|
227 |
try:
|
228 |
+
external_url = f"{os.getenv('EXTERNAL_API_BASE_URL')}/v1/chat"
|
229 |
payload = {
|
230 |
"prompt": chat_request.prompt,
|
231 |
"src_lang": chat_request.src_lang,
|
|
|
282 |
file_content = await file.read()
|
283 |
files = {"file": (file.filename, file_content, file.content_type)}
|
284 |
|
285 |
+
external_url = f"{os.getenv('EXTERNAL_API_BASE_URL')}/v1/transcribe/?language={language}"
|
286 |
response = requests.post(
|
287 |
external_url,
|
288 |
files=files,
|
|
|
331 |
|
332 |
logger.info(f"Received translation request: {len(request.sentences)} sentences, src_lang: {request.src_lang}, tgt_lang: {request.tgt_lang}")
|
333 |
|
334 |
+
external_url = f"{os.getenv('EXTERNAL_API_BASE_URL')}/v1/translate"
|
335 |
|
336 |
payload = {
|
337 |
"sentences": request.sentences,
|
|
|
415 |
file_content = await file.read()
|
416 |
files = {"file": (file.filename, file_content, file.content_type)}
|
417 |
|
418 |
+
external_url = f"{os.getenv('EXTERNAL_API_BASE_URL')}/extract-text/?page_number={page_number}&language={language}"
|
419 |
response = requests.post(
|
420 |
external_url,
|
421 |
files=files,
|
|
|
482 |
"tgt_lang": visual_query_request.tgt_lang
|
483 |
})
|
484 |
|
485 |
+
external_url = f"{os.getenv('EXTERNAL_API_BASE_URL')}/v1/visual_query/?src_lang={visual_query_request.src_lang}&tgt_lang={visual_query_request.tgt_lang}"
|
486 |
|
487 |
try:
|
488 |
file_content = await file.read()
|
|
|
555 |
try:
|
556 |
file_content = await file.read()
|
557 |
files = {"file": (file.filename, file_content, file.content_type)}
|
558 |
+
external_url = f"{os.getenv('EXTERNAL_API_BASE_URL')}/v1/speech_to_speech?language={language}"
|
559 |
|
560 |
response = requests.post(
|
561 |
external_url,
|
|
|
586 |
raise HTTPException(status_code=500, detail=f"External API error: {str(e)}")
|
587 |
|
588 |
if __name__ == "__main__":
|
589 |
+
# Ensure EXTERNAL_API_BASE_URL is set
|
590 |
+
external_api_base_url = os.getenv("EXTERNAL_API_BASE_URL")
|
591 |
+
if not external_api_base_url:
|
592 |
+
raise ValueError("Environment variable EXTERNAL_API_BASE_URL must be set")
|
593 |
+
|
594 |
parser = argparse.ArgumentParser(description="Run the FastAPI server.")
|
595 |
parser.add_argument("--port", type=int, default=8000, help="Port to run the server on.")
|
596 |
parser.add_argument("--host", type=str, default="0.0.0.0", help="Host to run the server on.")
|