From 03b0afafeda3805b13b741799a2bbaa86deb69a7 Mon Sep 17 00:00:00 2001 From: aaron <> Date: Thu, 29 May 2025 22:25:56 +0800 Subject: [PATCH] no message --- cryptoai/routes/analysis.py | 43 +++++++++++++++++++++++++++++++++++++ docker-compose.yml | 2 +- 2 files changed, 44 insertions(+), 1 deletion(-) diff --git a/cryptoai/routes/analysis.py b/cryptoai/routes/analysis.py index 948f2b2..e5bfe68 100644 --- a/cryptoai/routes/analysis.py +++ b/cryptoai/routes/analysis.py @@ -39,6 +39,49 @@ class AnalysisRequest(BaseModel): stock_code: Optional[str] = None type: str +class ChatRequest(BaseModel): + message: str + conversation_id: Optional[str] = None + +@router.post("/chat-messages") +async def chat(request: ChatRequest, + current_user: dict = Depends(get_current_user)): + + token = 'app-pPtva2AdJ8hJzkBKu12ThWjD' + + payload = { + "inputs" : {}, + "query": request.message, + "response_mode": "streaming", + "user": current_user["mail"], + } + + if request.conversation_id: + payload["conversation_id"] = request.conversation_id + + url = 'https://mate.aimateplus.com/v1/chat-messages' + headers = { + 'Authorization': f'Bearer {token}', + 'Content-Type': 'application/json' + } + + response = requests.post(url, headers=headers, json=payload, stream=True) + + # 如果响应不成功,返回错误 + if response.status_code != 200: + raise HTTPException( + status_code=response.status_code, + detail=f"Failed to get response from Dify API: {response.text}" + ) + + # 获取response的stream + def stream_response(): + for chunk in response.iter_content(chunk_size=1024): + if chunk: + yield chunk + + return StreamingResponse(stream_response(), media_type="text/plain") + @router.post("/analysis") async def analysis(request: AnalysisRequest, current_user: dict = Depends(get_current_user)): diff --git a/docker-compose.yml b/docker-compose.yml index 36b0f03..2c7d338 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -29,7 +29,7 @@ services: cryptoai-api: build: . container_name: cryptoai-api - image: cryptoai-api:0.1.30 + image: cryptoai-api:0.1.31 restart: always ports: - "8000:8000"