feat: 第三优先级完善 — CI/CD、PyPI、pre-commit、CHANGELOG、贡献指南、基准测试、ADR
CI / Test (Python 3.13) (push) Has been cancelled
CI / Test (Python 3.13) (push) Has been cancelled
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
"""基准测试共享 fixture."""
|
||||
import pytest
|
||||
|
||||
from src.core.config import ChunkConfig, EmbedConfig
|
||||
from src.core.db import VectorDB
|
||||
from src.core.embedder import create_embedder
|
||||
from src.core.ingest import DocumentIngestor
|
||||
from src.core.search import Searcher
|
||||
|
||||
|
||||
@pytest.fixture(scope="module")
|
||||
def benchmark_db(tmp_path_factory):
|
||||
"""模块级共享 ChromaDB 实例."""
|
||||
persist_dir = tmp_path_factory.mktemp("bench_data")
|
||||
return VectorDB(persist_dir=str(persist_dir))
|
||||
|
||||
|
||||
@pytest.fixture(scope="module")
|
||||
def benchmark_embedder():
|
||||
"""模块级共享 LocalEmbedder."""
|
||||
config = EmbedConfig(mode="local", local_model="BAAI/bge-small-zh-v1.5")
|
||||
return create_embedder(config)
|
||||
|
||||
|
||||
@pytest.fixture(scope="module")
|
||||
def benchmark_searcher(benchmark_db, benchmark_embedder):
|
||||
"""预填充数据的 Searcher."""
|
||||
ingestor = DocumentIngestor(
|
||||
benchmark_db, benchmark_embedder, "bench_collection",
|
||||
chunk_config=ChunkConfig(max_size=1000, overlap=100),
|
||||
)
|
||||
for i in range(100):
|
||||
content = (
|
||||
f"# 文档{i}\n\n"
|
||||
+ "\n\n".join(
|
||||
f"第{j}段用于基准测试。关键词: Python, Rust, GPU, 向量数据库。"
|
||||
for j in range(5)
|
||||
)
|
||||
)
|
||||
ingestor.ingest_content(content, f"bench_{i}.md")
|
||||
return Searcher(benchmark_db, benchmark_embedder, "bench_collection")
|
||||
Reference in New Issue
Block a user