فهرست منبع

feat: 修改入参

huangzhichao 1 روز پیش
والد
کامیت
675d7887ed
4فایلهای تغییر یافته به همراه14 افزوده شده و 38 حذف شده
  1. 1 1
      Dockerfile
  2. 0 33
      app/providers/mock_provider.py
  3. 7 3
      app/providers/speech_provider.py
  4. 6 1
      app/schemas/speech.py

+ 1 - 1
Dockerfile

@@ -23,7 +23,7 @@ COPY app ./app
 COPY README.md .
 
 # Optionally copy .env at build time (usually mounted at runtime)
-# COPY .env .
+COPY .env .
 
 EXPOSE 8000
 

+ 0 - 33
app/providers/mock_provider.py

@@ -1,33 +0,0 @@
-from typing import List, Optional
-
-from ..schemas.speech import ChatMessage, ChatResponse, Usage
-
-
-class MockProvider:
-    """A simple echo-like provider for local testing.
-
-    It takes the last user message and returns a prefixed reply.
-    """
-
-    def chat(
-        self,
-        messages: List[ChatMessage],
-        *,
-        model: Optional[str] = None,
-        temperature: Optional[float] = None,
-        max_tokens: Optional[int] = None,
-    ) -> ChatResponse:
-        last_user = next((m.content for m in reversed(messages) if m.role == "user"), "")
-        content = f"[mock] You said: {last_user}"
-
-        # Very rough word-count "tokens" approximation for demo purposes only
-        prompt_tokens = sum(len(m.content.split()) for m in messages)
-        completion_tokens = len(content.split())
-        usage = Usage(
-            prompt_tokens=prompt_tokens,
-            completion_tokens=completion_tokens,
-            total_tokens=prompt_tokens + completion_tokens,
-        )
-
-        return ChatResponse(content=content, model=model or "mock-echo-001", usage=usage)
-

+ 7 - 3
app/providers/speech_provider.py

@@ -11,7 +11,7 @@ from dashscope.audio.tts import ResultCallback, SpeechSynthesizer, SpeechSynthes
 
 import requests
 
-from ..schemas.speech import TextToSpeechResponse
+from ..schemas.speech import TextToSpeechResponse, DataPayload
 from ..core.config import get_settings
 
 settings = get_settings()
@@ -74,11 +74,15 @@ class SpeechProvider:
                 Path(out_path).unlink(missing_ok=True)
             except Exception as del_err:
                 print(f"[warn] Failed to delete local audio {out_path}: {del_err}")
-            return TextToSpeechResponse(audio_url=url)
+            return TextToSpeechResponse(
+                code=0,
+                data=DataPayload(audio_url=url),
+                msg='success'
+            )
         except Exception as e:
             # If upload fails, fall back to local path to avoid breaking
             print(f"[warn] Upload failed: {e}")
-            return TextToSpeechResponse(audio_url=str(out_path))
+            return TextToSpeechResponse(code=0, msg=e.message/'error')
 
 
 class Callback(ResultCallback):

+ 6 - 1
app/schemas/speech.py

@@ -28,9 +28,14 @@ class ChatResponse(BaseModel):
     model: Optional[str] = None
     usage: Optional[Usage] = None
 
-class TextToSpeechResponse(BaseModel):
+class DataPayload(BaseModel):
     audio_url: str
 
+class TextToSpeechResponse(BaseModel):
+    code: int
+    data: Optional[DataPayload] = None
+    msg: Optional[str] = None
+
 class TextToSpeechRequest(BaseModel):
     volume: int = 1
     pitch: float = 1