This commit is contained in:
2025-12-29 14:42:33 +08:00
parent 9f636d1c31
commit 8c4491b383
9 changed files with 37 additions and 50 deletions

View File

@@ -16,7 +16,8 @@ async def register(req: RegisterRequest):
@app.post("/add_urls")
async def add_urls(req: AddUrlsRequest):
try:
data = crawler_service.add_urls(req.task_id, req.urls_obj)
urls = req.urls_obj["urls"]
data = crawler_service.add_urls(req.task_id, urls=urls)
return make_response(1, "Success", data)
except Exception as e:
return make_response(0, str(e))
@@ -46,7 +47,9 @@ async def search(req: SearchRequest):
"""
try:
# 1. 基础校验:确保向量不为空且维度正确(阿里 v4 模型通常为 1536
if not req.query_embedding or len(req.query_embedding) != 1536:
vector = req.query_embedding['vector']
if not vector or len(vector) != 1536:
return make_response(
code=2,
msg=f"向量维度错误。期望 1536, 实际收到 {len(req.query_embedding) if req.query_embedding else 0}",
@@ -55,7 +58,7 @@ async def search(req: SearchRequest):
# 2. 调用业务类执行搜索
data = crawler_service.search_knowledge(
query_embedding=req.query_embedding,
query_embedding=vector,
task_id=req.task_id,
limit=req.limit
)

View File

@@ -27,5 +27,5 @@ class SaveResultsRequest(BaseModel):
class SearchRequest(BaseModel):
# 如果不传 task_id则进行全库搜索
task_id: Optional[int] = None
query_embedding: List[float]
query_embedding: dict
limit: Optional[int] = 5

View File

@@ -23,11 +23,9 @@ class CrawlerService:
new_task = conn.execute(stmt).fetchone()
return {"task_id": new_task[0], "is_new_task": True}
def add_urls(self, task_id: int, urls_obj: dict):
def add_urls(self, task_id: int, urls: list[str]):
"""通用 API 实现的批量添加(含详细返回)"""
success_urls, skipped_urls, failed_urls = [], [], []
# 从 urls_obj 中提取 urls 列表
urls = urls_obj.get("urls", [])
with self.db.engine.begin() as conn:
for url in urls: