Files
tw/run.py
ZuoWei a6c42d505a feat: 完整功能部署 v1.0
新增功能:
- 天网协作系统 (HTTP API 端口 6060)
- 三种工作流 (查找图片/处理图片/转人工派单)
- 图片任务数据库 (支持客户后续增加需求)
- 图绘派单系统集成 (API: 8005)
- 文字检测与加价 (60-80 元高价值订单)
- 风险评估与接单判断
- 作图失败自动转人工

新增文档:
- 项目功能汇总.md
- 三种工作流功能说明.md
- 文字加价功能说明.md
- 风险评估功能说明.md
- 图片任务数据库功能说明.md
- 图绘派单系统集成说明.md
- 作图失败转接人工说明.md
- DEPLOYMENT.md
- TIANWANG_INTEGRATION.md

核心修改:
- core/pydantic_ai_agent.py
- core/workflow.py
- core/websocket_client.py
- image/image_analyzer.py
- services/service_tuhui_dispatch.py
- db/image_tasks_db.py

版本:v1.0
日期:2026-02-28
2026-02-28 11:20:40 +08:00

98 lines
2.5 KiB
Python
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# -*- coding: utf-8 -*-
"""
项目入口 - 启动 WebSocket 客服客户端
用法:
python run.py # 单进程模式(默认)
python run.py --no-agent # 仅基础回复,不启用 AI
python run.py --multi # 多进程模式
python run.py --multi -w 4 # 多进程模式,指定 4 个进程
"""
import sys
import os
import argparse
from pathlib import Path
# 确保项目根目录在 sys.path 首位
_root = Path(__file__).resolve().parent
if str(_root) not in sys.path:
sys.path.insert(0, str(_root))
def run_single_process(enable_agent: bool):
"""单进程模式"""
from core.websocket_client import QingjianAPIClient
import asyncio
print("=" * 60)
print("AI 客服系统 - 单进程模式")
print("=" * 60)
print(f"AI Agent: {'已启用' if enable_agent else '未启用'}")
print("=" * 60)
client = QingjianAPIClient(enable_agent=enable_agent)
try:
asyncio.run(client.run())
except KeyboardInterrupt:
print("\n已停止")
def run_multi_process(num_workers: int, enable_agent: bool):
"""多进程模式"""
from scripts.multi_process_launcher import Coordinator
print("=" * 60)
print("AI 客服系统 - 多进程异步并行模式")
print("=" * 60)
print(f"工作进程数:{num_workers}")
print(f"AI Agent: {'已启用' if enable_agent else '未启用'}")
print("=" * 60)
coordinator = Coordinator(num_workers=num_workers)
try:
coordinator.start()
except KeyboardInterrupt:
print("\n已停止")
coordinator.stop()
def main():
parser = argparse.ArgumentParser(description='AI 客服系统启动器')
parser.add_argument(
'--no-agent',
action='store_true',
help='不启用 AI Agent仅基础回复'
)
parser.add_argument(
'--multi',
action='store_true',
help='多进程模式'
)
parser.add_argument(
'-w', '--workers',
type=int,
default=None,
help='工作进程数默认CPU 核心数,仅多进程模式有效)'
)
args = parser.parse_args()
enable_agent = not args.no_agent
if args.multi:
# 多进程模式
run_multi_process(
num_workers=args.workers,
enable_agent=enable_agent
)
else:
# 单进程模式(默认)
run_single_process(enable_agent=enable_agent)
if __name__ == "__main__":
main()