chore: update gitignore; feat: 新增customer_agent业务模块与api路由
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
import tempfile
|
||||
import unittest
|
||||
from pathlib import Path
|
||||
|
||||
from rag.preview import preview_document
|
||||
|
||||
|
||||
class PreviewTests(unittest.TestCase):
|
||||
def test_previews_manually_selected_strategy_with_custom_config(self):
|
||||
with tempfile.TemporaryDirectory() as tmp:
|
||||
path = Path(tmp) / "faq.md"
|
||||
path.write_text("Q: 什么是净值?\nA: 基金单位价值。", encoding="utf-8")
|
||||
|
||||
preview = preview_document(path, strategy="qa_pair", chunk_size=64, chunk_overlap=4)
|
||||
|
||||
self.assertEqual(preview["strategy"], "qa_pair")
|
||||
self.assertEqual(preview["actual_strategy"], "qa_pair")
|
||||
self.assertEqual(len(preview["chunks"]), 1)
|
||||
self.assertEqual(preview["chunks"][0]["section_title"], None)
|
||||
|
||||
def test_rejects_auto_strategy(self):
|
||||
with tempfile.TemporaryDirectory() as tmp:
|
||||
path = Path(tmp) / "faq.md"
|
||||
path.write_text("普通文本", encoding="utf-8")
|
||||
|
||||
with self.assertRaises(ValueError):
|
||||
preview_document(path, strategy="auto")
|
||||
|
||||
def test_preview_reports_chapter_fallback(self):
|
||||
with tempfile.TemporaryDirectory() as tmp:
|
||||
path = Path(tmp) / "notice.md"
|
||||
path.write_text("没有标题的普通文本", encoding="utf-8")
|
||||
|
||||
preview = preview_document(path, strategy="chapter_semantic")
|
||||
|
||||
self.assertEqual(preview["actual_strategy"], "default")
|
||||
self.assertTrue(preview["degraded"])
|
||||
self.assertTrue(preview["warning"])
|
||||
|
||||
def test_preview_exposes_cleaning_warnings_and_uses_cleaned_text(self):
|
||||
with tempfile.TemporaryDirectory() as tmp:
|
||||
path = Path(tmp) / "notice.md"
|
||||
path.write_text("\ufeff第一段\r\n\r\n\r\n第二段\t内容", encoding="utf-8")
|
||||
|
||||
preview = preview_document(path, strategy="default")
|
||||
|
||||
self.assertTrue(preview["cleaning_changed"])
|
||||
self.assertTrue(preview["cleaning_warnings"])
|
||||
self.assertEqual(preview["chunks"][0]["text"], "第一段")
|
||||
self.assertEqual(preview["chunks"][1]["text"], "第二段 内容")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user