mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-05-03 04:42:39 +02:00
feat: enhance Obsidian plugin schema with HeadingRef class
This commit is contained in:
parent
1d324f169f
commit
6eeaa2db4d
4 changed files with 38 additions and 3 deletions
|
|
@ -21,6 +21,13 @@ class _PluginBase(BaseModel):
|
|||
model_config = _PLUGIN_MODEL_CONFIG
|
||||
|
||||
|
||||
class HeadingRef(_PluginBase):
|
||||
"""One markdown heading extracted from Obsidian metadata cache."""
|
||||
|
||||
heading: str
|
||||
level: int = Field(ge=1, le=6)
|
||||
|
||||
|
||||
class NotePayload(_PluginBase):
|
||||
"""One Obsidian note as pushed by the plugin (the source of truth)."""
|
||||
|
||||
|
|
@ -36,7 +43,7 @@ class NotePayload(_PluginBase):
|
|||
|
||||
frontmatter: dict[str, Any] = Field(default_factory=dict)
|
||||
tags: list[str] = Field(default_factory=list)
|
||||
headings: list[str] = Field(default_factory=list)
|
||||
headings: list[HeadingRef] = Field(default_factory=list)
|
||||
resolved_links: list[str] = Field(default_factory=list)
|
||||
unresolved_links: list[str] = Field(default_factory=list)
|
||||
embeds: list[str] = Field(default_factory=list)
|
||||
|
|
|
|||
|
|
@ -53,7 +53,6 @@ from app.schemas.obsidian_plugin import (
|
|||
ManifestResponse,
|
||||
NotePayload,
|
||||
)
|
||||
from app.services.llm_service import get_user_long_context_llm
|
||||
from app.utils.document_converters import generate_unique_identifier_hash
|
||||
from app.utils.document_versioning import create_version_snapshot
|
||||
|
||||
|
|
@ -102,7 +101,7 @@ def _build_metadata(
|
|||
"extension": payload.extension,
|
||||
"frontmatter": payload.frontmatter,
|
||||
"tags": payload.tags,
|
||||
"headings": payload.headings,
|
||||
"headings": [h.model_dump() for h in payload.headings],
|
||||
"outgoing_links": payload.resolved_links,
|
||||
"unresolved_links": payload.unresolved_links,
|
||||
"embeds": payload.embeds,
|
||||
|
|
@ -237,6 +236,8 @@ async def upsert_note(
|
|||
|
||||
document = prepared[0]
|
||||
|
||||
from app.services.llm_service import get_user_long_context_llm
|
||||
|
||||
llm = await get_user_long_context_llm(session, str(user_id), search_space_id)
|
||||
return await pipeline.index(document, connector_doc, llm)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue