Skip to content

Commit 561061f

Browse files
author
Daniele Briggi
committed
fix(title): title generation avoid lines w/o words
1 parent 71bed6b commit 561061f

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

src/sqlite_rag/models/document.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,11 +55,11 @@ def extract_document_title(self, fallback_first_line: bool = False) -> str | Non
5555
if match:
5656
return match.group(1).strip()
5757

58-
# Fallback: first non-empty line
58+
# Fallback: first non-empty line with at least one word
5959
if fallback_first_line:
6060
for line in self.content.splitlines():
6161
line = line.strip()
62-
if line:
62+
if line and re.search(r"\w", line):
6363
return line[: self.GENERATED_TITLE_MAX_CHARS]
6464

6565
return None

tests/models/test_document.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,3 +45,11 @@ def test_extract_document_title_without_heading(
4545
assert (
4646
doc.extract_document_title(fallback_first_line=fallback) == expected_title
4747
)
48+
49+
def test_extract_document_title_with_a_word(self):
50+
content = "---\n \n Leading spaces line with a word."
51+
doc = Document(content=content, metadata={})
52+
assert (
53+
doc.extract_document_title(fallback_first_line=True)
54+
== "Leading spaces line with a word."
55+
)

0 commit comments

Comments
 (0)