ソースを参照

Fix: Increase timeouts for document parsing and model checks (#8996)

### What problem does this PR solve?

- Extended embedding model timeout from 3 to 10 seconds in api_utils.py
- Added more time for large file batches and concurrent parsing
operations to prevent test flakiness
- Import from #8940
- https://github.com/infiniflow/ragflow/actions/runs/16422052652

### Type of change

- [x] Bug Fix (non-breaking change which fixes an issue)
tags/v0.20.0
Liu An 3ヶ月前
コミット
b4b6d296ea
コミッターのメールアドレスに関連付けられたアカウントが存在しません

+ 4
- 6
api/utils/api_utils.py ファイルの表示

@@ -26,15 +26,12 @@ from copy import deepcopy
from functools import wraps
from hmac import HMAC
from io import BytesIO
from typing import Any, Optional, Union, Callable, Coroutine, Type
from typing import Any, Callable, Coroutine, Optional, Type, Union
from urllib.parse import quote, urlencode
from uuid import uuid1

import trio
from rag.utils.mcp_tool_call_conn import MCPToolCallSession, close_multiple_mcp_toolcall_sessions


import requests
import trio
from flask import (
Response,
jsonify,
@@ -53,6 +50,7 @@ from api.constants import REQUEST_MAX_WAIT_SEC, REQUEST_WAIT_SEC
from api.db.db_models import APIToken
from api.db.services.llm_service import LLMService, TenantLLMService
from api.utils import CustomJSONEncoder, get_uuid, json_dumps
from rag.utils.mcp_tool_call_conn import MCPToolCallSession, close_multiple_mcp_toolcall_sessions

requests.models.complexjson.dumps = functools.partial(json.dumps, cls=CustomJSONEncoder)

@@ -693,7 +691,7 @@ async def is_strong_enough(chat_model, embedding_model):
async def _is_strong_enough():
nonlocal chat_model, embedding_model
if embedding_model:
with trio.fail_after(3):
with trio.fail_after(10):
_ = await trio.to_thread.run_sync(lambda: embedding_model.encode(["Are you strong enough!?"]))
if chat_model:
with trio.fail_after(30):

+ 2
- 2
test/testcases/test_http_api/test_file_management_within_dataset/test_parse_documents.py ファイルの表示

@@ -167,7 +167,7 @@ class TestDocumentsParse:

@pytest.mark.p3
def test_parse_100_files(HttpApiAuth, add_dataset_func, tmp_path):
@wait_for(100, 1, "Document parsing timeout")
@wait_for(200, 1, "Document parsing timeout")
def condition(_auth, _dataset_id, _document_num):
res = list_documents(_auth, _dataset_id, {"page_size": _document_num})
for doc in res["data"]["docs"]:
@@ -188,7 +188,7 @@ def test_parse_100_files(HttpApiAuth, add_dataset_func, tmp_path):

@pytest.mark.p3
def test_concurrent_parse(HttpApiAuth, add_dataset_func, tmp_path):
@wait_for(120, 1, "Document parsing timeout")
@wait_for(200, 1, "Document parsing timeout")
def condition(_auth, _dataset_id, _document_num):
res = list_documents(_auth, _dataset_id, {"page_size": _document_num})
for doc in res["data"]["docs"]:

+ 2
- 2
test/testcases/test_sdk_api/test_file_management_within_dataset/test_parse_documents.py ファイルの表示

@@ -116,7 +116,7 @@ class TestDocumentsParse:

@pytest.mark.p3
def test_parse_100_files(add_dataset_func, tmp_path):
@wait_for(100, 1, "Document parsing timeout")
@wait_for(200, 1, "Document parsing timeout")
def condition(_dataset: DataSet, _count: int):
documents = _dataset.list_documents(page_size=_count * 2)
for document in documents:
@@ -136,7 +136,7 @@ def test_parse_100_files(add_dataset_func, tmp_path):

@pytest.mark.p3
def test_concurrent_parse(add_dataset_func, tmp_path):
@wait_for(120, 1, "Document parsing timeout")
@wait_for(200, 1, "Document parsing timeout")
def condition(_dataset: DataSet, _count: int):
documents = _dataset.list_documents(page_size=_count * 2)
for document in documents:

読み込み中…
キャンセル
保存