sachin commited on
Commit
00efe9f
·
1 Parent(s): 5e6298f

api-server

Browse files
Files changed (1) hide show
  1. 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, Depends, Form
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 = "http://example.com/v1/audio/speech" # Placeholder 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 = "http://example.com/v1/chat" # Placeholder 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"http://example.com/v1/transcribe/?language={language}" # Placeholder URL
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 = "http://example.com/v1/translate" # Placeholder 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"http://example.com/extract-text/?page_number={page_number}&language={language}" # Placeholder URL
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"http://example.com/v1/visual_query/?src_lang={visual_query_request.src_lang}&tgt_lang={visual_query_request.tgt_lang}" # Placeholder URL
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"http://example.com/v1/speech_to_speech?language={language}" # Placeholder URL
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.")