|
@@ -11,7 +11,6 @@ router = APIRouter(prefix="/text", tags=["Text Search"])
|
|
|
|
|
|
class TextSearchRequest(BaseModel):
|
|
|
text: str
|
|
|
- limit: int = 1
|
|
|
|
|
|
@router.post("/search", response_model=StandardResponse)
|
|
|
async def search_text(request: TextSearchRequest):
|
|
@@ -30,11 +29,16 @@ async def search_text(request: TextSearchRequest):
|
|
|
for sentence in sentences:
|
|
|
search_results = trunks_service.search_by_vector(
|
|
|
text=sentence,
|
|
|
- limit=request.limit
|
|
|
+ limit=1
|
|
|
)
|
|
|
|
|
|
# 处理搜索结果
|
|
|
for result in search_results:
|
|
|
+ # 获取distance值,如果大于等于1则跳过
|
|
|
+ distance = result.get("distance", 1.0)
|
|
|
+ if distance >= 1:
|
|
|
+ continue
|
|
|
+
|
|
|
# 添加引用标记
|
|
|
result_sentence = sentence + f"^[{reference_index}]^"
|
|
|
result_sentences.append(result_sentence)
|
|
@@ -45,7 +49,7 @@ async def search_text(request: TextSearchRequest):
|
|
|
"content": result["content"],
|
|
|
"file_path": result.get("file_path", ""),
|
|
|
"title": result.get("title", ""),
|
|
|
- "distance": result.get("distance", "")
|
|
|
+ "distance": distance
|
|
|
}
|
|
|
all_references.append(reference)
|
|
|
reference_index += 1
|