From 8a9f160cfaa447c93d5895dfee3f9b3cd1f0f47e Mon Sep 17 00:00:00 2001 From: zhh Date: Mon, 24 Nov 2025 15:18:02 +0800 Subject: [PATCH 01/12] =?UTF-8?q?feat=EF=BC=88=E6=96=B0=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=EF=BC=89:=20fix=EF=BC=88=E4=BF=AE=E5=A4=8Dbug=EF=BC=89:=20=20?= =?UTF-8?q?=E6=8E=A8=E8=8D=90=E6=8E=A5=E5=8F=A3=20=E8=AF=B7=E6=B1=82?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E6=89=93=E5=8D=B0=20docs=EF=BC=88=E6=96=87?= =?UTF-8?q?=E6=A1=A3=E5=8F=98=E6=9B=B4=EF=BC=89:=20refactor=EF=BC=88?= =?UTF-8?q?=E9=87=8D=E6=9E=84=EF=BC=89:=20test(=E5=A2=9E=E5=8A=A0=E6=B5=8B?= =?UTF-8?q?=E8=AF=95):?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/api_recommendation.py | 1 + 1 file changed, 1 insertion(+) diff --git a/app/api/api_recommendation.py b/app/api/api_recommendation.py index 4084e46..40f7fa0 100644 --- a/app/api/api_recommendation.py +++ b/app/api/api_recommendation.py @@ -92,6 +92,7 @@ async def get_recommendations(user_id: int, category: str, brand_id: int, brand_ ] """ try: + logger.info(f"user_id:{user_id}, category:{category}, num_recommendations:{num_recommendations}") start_time = time.time() cache_key = (user_id, category) # === 新增:用户存在性检查 === From 448af4ab6b8f90281e637c7002421faf279f4707 Mon Sep 17 00:00:00 2001 From: zhh Date: Mon, 24 Nov 2025 15:32:25 +0800 Subject: [PATCH 02/12] =?UTF-8?q?feat=EF=BC=88=E6=96=B0=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=EF=BC=89:=20fix=EF=BC=88=E4=BF=AE=E5=A4=8Dbug=EF=BC=89:=20=20?= =?UTF-8?q?=E6=8E=A8=E8=8D=90=E6=8E=A5=E5=8F=A3=20=E8=AF=B7=E6=B1=82?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E6=89=93=E5=8D=B0=20docs=EF=BC=88=E6=96=87?= =?UTF-8?q?=E6=A1=A3=E5=8F=98=E6=9B=B4=EF=BC=89:=20refactor=EF=BC=88?= =?UTF-8?q?=E9=87=8D=E6=9E=84=EF=BC=89:=20test(=E5=A2=9E=E5=8A=A0=E6=B5=8B?= =?UTF-8?q?=E8=AF=95):?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/api_recommendation.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/api/api_recommendation.py b/app/api/api_recommendation.py index 40f7fa0..477ab08 100644 --- a/app/api/api_recommendation.py +++ b/app/api/api_recommendation.py @@ -34,12 +34,14 @@ async def startup_event(): scheduler.start() logger.info("定时任务已启动") + def softmax(scores): max_score = max(scores) exp_scores = [math.exp(s - max_score) for s in scores] sum_exp = sum(exp_scores) return [s / sum_exp for s in exp_scores] + # def get_random_recommendations(category: str, num: int) -> List[str]: # """根据预加载热度向量推荐(冷启动)""" # try: @@ -92,7 +94,7 @@ async def get_recommendations(user_id: int, category: str, brand_id: int, brand_ ] """ try: - logger.info(f"user_id:{user_id}, category:{category}, num_recommendations:{num_recommendations}") + logger.info(f"user_id:{user_id}-----category:{category}-----brand_id:{brand_id}-----brand_scale:{brand_scale}-----num_recommendations:{num_recommendations}") start_time = time.time() cache_key = (user_id, category) # === 新增:用户存在性检查 === @@ -202,4 +204,4 @@ async def get_recommendations(user_id: int, category: str, brand_id: int, brand_ except Exception as e: logger.error(f"推荐失败: {str(e)}", exc_info=True) - raise HTTPException(status_code=500, detail=str(e)) \ No newline at end of file + raise HTTPException(status_code=500, detail=str(e)) From c6af01bc51c9f04e8a4223de2274598ef7d009cf Mon Sep 17 00:00:00 2001 From: admin Date: Fri, 28 Nov 2025 17:02:47 +0800 Subject: [PATCH 03/12] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E8=87=B3=E3=80=8C.gitea/workflows=E3=80=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/develop_build_commit.yaml | 43 ++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 .gitea/workflows/develop_build_commit.yaml diff --git a/.gitea/workflows/develop_build_commit.yaml b/.gitea/workflows/develop_build_commit.yaml new file mode 100644 index 0000000..1ae868b --- /dev/null +++ b/.gitea/workflows/develop_build_commit.yaml @@ -0,0 +1,43 @@ +name: git commit AiDA python develop 分支构建部署 +on: + workflow_dispatch: + push: + branches: + - develop + +jobs: + scheduled_deploy: + runs-on: ubuntu-latest + + env: + REMOTE_DEPLOY_PATH: /workspace/Trinity/Fastapi_AiDA_Trinity_Dev + + steps: + - name: 1.检出代码 + uses: actions/checkout@v4 + with: + ref: 'develop' + + - name: 2.复制文件到服务器 + uses: appleboy/scp-action@v0.1.7 + with: + host: ${{ secrets.SERVER_HOST }} + username: ${{ secrets.SERVER_USER }} + key: ${{ secrets.SSH_KEY }} + source: "." + target: ${{ env.REMOTE_DEPLOY_PATH }} + + - name: Restart Docker containers + uses: appleboy/ssh-action@v0.1.10 + with: + host: ${{ secrets.SERVER_HOST }} + username: ${{ secrets.SERVER_USER }} + key: ${{ secrets.SSH_KEY }} + script: | + # 进入项目目录 + cd ${{ env.REMOTE_DEPLOY_PATH }} + + docker-compose down 2>&1 + docker-compose up -d --build --remove-orphans 2>&1 + + docker image prune -f 2>&1 \ No newline at end of file From efa2e3a4a9a9e920b543ab198e6462b0f0516b94 Mon Sep 17 00:00:00 2001 From: admin Date: Fri, 28 Nov 2025 17:10:11 +0800 Subject: [PATCH 04/12] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20.gitea/workflows/dev?= =?UTF-8?q?elop=5Fbuild=5Fcommit.yaml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/develop_build_commit.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/develop_build_commit.yaml b/.gitea/workflows/develop_build_commit.yaml index 1ae868b..ca89001 100644 --- a/.gitea/workflows/develop_build_commit.yaml +++ b/.gitea/workflows/develop_build_commit.yaml @@ -23,7 +23,7 @@ jobs: with: host: ${{ secrets.SERVER_HOST }} username: ${{ secrets.SERVER_USER }} - key: ${{ secrets.SSH_KEY }} + key: ${{ secrets.SERVER_PASSWORD }} source: "." target: ${{ env.REMOTE_DEPLOY_PATH }} @@ -32,7 +32,7 @@ jobs: with: host: ${{ secrets.SERVER_HOST }} username: ${{ secrets.SERVER_USER }} - key: ${{ secrets.SSH_KEY }} + key: ${{ secrets.SERVER_PASSWORD }} script: | # 进入项目目录 cd ${{ env.REMOTE_DEPLOY_PATH }} From 3fc6720bf73430ae0a0f84c854a0b8d34ca8a65e Mon Sep 17 00:00:00 2001 From: admin Date: Fri, 28 Nov 2025 17:11:49 +0800 Subject: [PATCH 05/12] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20.gitea/workflows/dev?= =?UTF-8?q?elop=5Fbuild=5Fcommit.yaml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/develop_build_commit.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/develop_build_commit.yaml b/.gitea/workflows/develop_build_commit.yaml index ca89001..b7d4a1f 100644 --- a/.gitea/workflows/develop_build_commit.yaml +++ b/.gitea/workflows/develop_build_commit.yaml @@ -23,7 +23,7 @@ jobs: with: host: ${{ secrets.SERVER_HOST }} username: ${{ secrets.SERVER_USER }} - key: ${{ secrets.SERVER_PASSWORD }} + password: ${{ secrets.SERVER_PASSWORD }} source: "." target: ${{ env.REMOTE_DEPLOY_PATH }} @@ -32,7 +32,7 @@ jobs: with: host: ${{ secrets.SERVER_HOST }} username: ${{ secrets.SERVER_USER }} - key: ${{ secrets.SERVER_PASSWORD }} + password: ${{ secrets.SERVER_PASSWORD }} script: | # 进入项目目录 cd ${{ env.REMOTE_DEPLOY_PATH }} From 7d970a7bba4a292ea6a09e0388c5dd021a67a33d Mon Sep 17 00:00:00 2001 From: admin Date: Fri, 28 Nov 2025 17:19:14 +0800 Subject: [PATCH 06/12] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E8=87=B3=E3=80=8C.gitea/workflows=E3=80=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/develop_build_manual.yaml | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 .gitea/workflows/develop_build_manual.yaml diff --git a/.gitea/workflows/develop_build_manual.yaml b/.gitea/workflows/develop_build_manual.yaml new file mode 100644 index 0000000..346e907 --- /dev/null +++ b/.gitea/workflows/develop_build_manual.yaml @@ -0,0 +1,40 @@ +name: 手动 AiDA python develop 分支构建部署 +on: + workflow_dispatch: + +jobs: + scheduled_deploy: + runs-on: ubuntu-latest + + env: + REMOTE_DEPLOY_PATH: /workspace/Trinity/Fastapi_AiDA_Trinity_Dev + + steps: + - name: 1.检出代码 + uses: actions/checkout@v4 + with: + ref: 'develop' + + - name: 2.复制文件到服务器 + uses: appleboy/scp-action@v0.1.7 + with: + host: ${{ secrets.SERVER_HOST }} + username: ${{ secrets.SERVER_USER }} + password: ${{ secrets.SERVER_PASSWORD }} + source: "." + target: ${{ env.REMOTE_DEPLOY_PATH }} + + - name: 3.重启docker-compose + uses: appleboy/ssh-action@v0.1.10 + with: + host: ${{ secrets.SERVER_HOST }} + username: ${{ secrets.SERVER_USER }} + password: ${{ secrets.SERVER_PASSWORD }} + script: | + # 进入项目目录 + cd ${{ env.REMOTE_DEPLOY_PATH }} + + docker-compose down 2>&1 + docker-compose up -d --build --remove-orphans 2>&1 + + docker image prune -f 2>&1 \ No newline at end of file From d493d9eff652df30b938e67b72b5a252efef91df Mon Sep 17 00:00:00 2001 From: admin Date: Fri, 28 Nov 2025 17:19:54 +0800 Subject: [PATCH 07/12] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20.gitea/workflows/dev?= =?UTF-8?q?elop=5Fbuild=5Fcommit.yaml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/develop_build_commit.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitea/workflows/develop_build_commit.yaml b/.gitea/workflows/develop_build_commit.yaml index b7d4a1f..48cf38b 100644 --- a/.gitea/workflows/develop_build_commit.yaml +++ b/.gitea/workflows/develop_build_commit.yaml @@ -8,6 +8,7 @@ on: jobs: scheduled_deploy: runs-on: ubuntu-latest + if: "contains(github.event.head_commit.message, '[run build]')" env: REMOTE_DEPLOY_PATH: /workspace/Trinity/Fastapi_AiDA_Trinity_Dev From 51068d2215bbd4a27408f2cecb993b55de781644 Mon Sep 17 00:00:00 2001 From: admin Date: Fri, 28 Nov 2025 17:23:33 +0800 Subject: [PATCH 08/12] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E8=87=B3=E3=80=8C.gitea/workflows=E3=80=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/develop_build_scheduled.yaml | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 .gitea/workflows/develop_build_scheduled.yaml diff --git a/.gitea/workflows/develop_build_scheduled.yaml b/.gitea/workflows/develop_build_scheduled.yaml new file mode 100644 index 0000000..95c9fcd --- /dev/null +++ b/.gitea/workflows/develop_build_scheduled.yaml @@ -0,0 +1,42 @@ +name: 定时 AiDA python develop 分支构建部署 +on: + # 使用 schedule 触发器,遵循标准的 Cron 格式 (分钟 小时-8 日期 月份 星期) + schedule: + - cron: '24 9 * * *' + +jobs: + scheduled_deploy: + runs-on: ubuntu-latest + + env: + REMOTE_DEPLOY_PATH: /workspace/Trinity/Fastapi_AiDA_Trinity_Dev + + steps: + - name: 1.检出代码 + uses: actions/checkout@v4 + with: + ref: 'develop' + + - name: 2.复制文件到服务器 + uses: appleboy/scp-action@v0.1.7 + with: + host: ${{ secrets.SERVER_HOST }} + username: ${{ secrets.SERVER_USER }} + password: ${{ secrets.SERVER_PASSWORD }} + source: "." + target: ${{ env.REMOTE_DEPLOY_PATH }} + + - name: Restart Docker containers + uses: appleboy/ssh-action@v0.1.10 + with: + host: ${{ secrets.SERVER_HOST }} + username: ${{ secrets.SERVER_USER }} + password: ${{ secrets.SERVER_PASSWORD }} + script: | + # 进入项目目录 + cd ${{ env.REMOTE_DEPLOY_PATH }} + + docker-compose down 2>&1 + docker-compose up -d --build --remove-orphans 2>&1 + + docker image prune -f 2>&1 \ No newline at end of file From 6e15430a837f13d1c169655129c9296c7cccfb81 Mon Sep 17 00:00:00 2001 From: admin Date: Fri, 28 Nov 2025 17:25:21 +0800 Subject: [PATCH 09/12] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20.gitea/workflows/dev?= =?UTF-8?q?elop=5Fbuild=5Fscheduled.yaml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/develop_build_scheduled.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/develop_build_scheduled.yaml b/.gitea/workflows/develop_build_scheduled.yaml index 95c9fcd..6363596 100644 --- a/.gitea/workflows/develop_build_scheduled.yaml +++ b/.gitea/workflows/develop_build_scheduled.yaml @@ -2,7 +2,7 @@ name: 定时 AiDA python develop 分支构建部署 on: # 使用 schedule 触发器,遵循标准的 Cron 格式 (分钟 小时-8 日期 月份 星期) schedule: - - cron: '24 9 * * *' + - cron: '25 9 * * *' jobs: scheduled_deploy: From 673423131aae087dff3f18a5cbf1f0428db94c28 Mon Sep 17 00:00:00 2001 From: admin Date: Fri, 28 Nov 2025 17:25:32 +0800 Subject: [PATCH 10/12] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20.gitea/workflows/dev?= =?UTF-8?q?elop=5Fbuild=5Fscheduled.yaml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/develop_build_scheduled.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/develop_build_scheduled.yaml b/.gitea/workflows/develop_build_scheduled.yaml index 6363596..0f049dc 100644 --- a/.gitea/workflows/develop_build_scheduled.yaml +++ b/.gitea/workflows/develop_build_scheduled.yaml @@ -2,7 +2,7 @@ name: 定时 AiDA python develop 分支构建部署 on: # 使用 schedule 触发器,遵循标准的 Cron 格式 (分钟 小时-8 日期 月份 星期) schedule: - - cron: '25 9 * * *' + - cron: '26 9 * * *' jobs: scheduled_deploy: From 832ca6fd05f239bf5d475f30ee0cc00fc61f0f1a Mon Sep 17 00:00:00 2001 From: admin Date: Fri, 28 Nov 2025 17:29:43 +0800 Subject: [PATCH 11/12] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20.gitea/workflows/dev?= =?UTF-8?q?elop=5Fbuild=5Fscheduled.yaml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/develop_build_scheduled.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/develop_build_scheduled.yaml b/.gitea/workflows/develop_build_scheduled.yaml index 0f049dc..b5325fa 100644 --- a/.gitea/workflows/develop_build_scheduled.yaml +++ b/.gitea/workflows/develop_build_scheduled.yaml @@ -2,7 +2,7 @@ name: 定时 AiDA python develop 分支构建部署 on: # 使用 schedule 触发器,遵循标准的 Cron 格式 (分钟 小时-8 日期 月份 星期) schedule: - - cron: '26 9 * * *' + - cron: '30 9 * * *' jobs: scheduled_deploy: From fac1eab1bcf7adc60d08a337953593f65f332b64 Mon Sep 17 00:00:00 2001 From: zcr Date: Tue, 16 Dec 2025 11:59:28 +0800 Subject: [PATCH 12/12] =?UTF-8?q?feat=20:=20design=20=E6=96=B0=E5=A2=9E=20?= =?UTF-8?q?callback=20=E6=A8=A1=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/schemas/design.py | 1 + app/service/design_fast/design_generate.py | 20 ++++---------------- 2 files changed, 5 insertions(+), 16 deletions(-) diff --git a/app/schemas/design.py b/app/schemas/design.py index 98d0a29..3fb6de7 100644 --- a/app/schemas/design.py +++ b/app/schemas/design.py @@ -10,6 +10,7 @@ class DesignStreamModel(BaseModel): objects: list[dict] process_id: str requestId: str + callback_url: str class DesignProgressModel(BaseModel): diff --git a/app/service/design_fast/design_generate.py b/app/service/design_fast/design_generate.py index 10b5e9e..eb0b8f9 100644 --- a/app/service/design_fast/design_generate.py +++ b/app/service/design_fast/design_generate.py @@ -145,10 +145,11 @@ def design_generate(request_data): @RunTime def design_generate_v2(request_data): objects_data = request_data.dict()['objects'] + callback_url = request_data.callback_url request_id = request_data.requestId threads = [] - def process_object(step, object): + def process_object(step, object, callback_url): basic = object['basic'] items_response = { 'layers': [], @@ -211,12 +212,8 @@ def design_generate_v2(request_data): }) items_response['synthesis_url'] = synthesis_single(item_result['front_image'], item_result['back_image']) # 发送结果给java端 - url = JAVA_STREAM_API_URL - xu_pei_test_url = "https://137f6b5c3490.ngrok-free.app/api/third/party/receiveDesignResults" - tianxaing_test_url = "https://d7436c137fb9.ngrok-free.app/api/third/party/receiveDesignResults" + url = callback_url logger.info(f"java 回调 -> {url}") - logger.info(f"xupei java 回调 -> {xu_pei_test_url}") - logger.info(f"tianxiang java 回调 -> {tianxaing_test_url}") headers = { 'Accept': "*/*", @@ -231,17 +228,8 @@ def design_generate_v2(request_data): # 打印结果 logger.info(response.text) - test_xp_response = post_request(xu_pei_test_url, json_data=items_response, headers=headers) - test_response = post_request(tianxaing_test_url, json_data=items_response, headers=headers) - - if test_response: - # 打印结果 - logger.info(f"tianxiang test response : {test_response.text}") - if test_xp_response: - logger.info(f"xupei test response : {test_xp_response.text}") - for step, object in enumerate(objects_data): - t = threading.Thread(target=process_object, args=(step, object)) + t = threading.Thread(target=process_object, args=(step, object, callback_url)) threads.append(t) t.start()