mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-05-17 18:35:19 +02:00
toogle the citations
This commit is contained in:
parent
61fc31ef02
commit
286d03c8dc
1 changed files with 23 additions and 14 deletions
|
|
@ -8,18 +8,11 @@ This demonstrates:
|
||||||
4. Creating a search_knowledge_base tool similar to fetch_relevant_documents
|
4. Creating a search_knowledge_base tool similar to fetch_relevant_documents
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import sys
|
|
||||||
from pathlib import Path
|
|
||||||
|
|
||||||
# Add parent directory to path so 'app' module can be found when running directly
|
|
||||||
_THIS_FILE = Path(__file__).resolve()
|
|
||||||
_BACKEND_ROOT = _THIS_FILE.parent.parent.parent.parent # surfsense_backend/
|
|
||||||
if str(_BACKEND_ROOT) not in sys.path:
|
|
||||||
sys.path.insert(0, str(_BACKEND_ROOT))
|
|
||||||
|
|
||||||
import asyncio
|
import asyncio
|
||||||
import json
|
import json
|
||||||
|
import sys
|
||||||
from datetime import UTC, datetime, timedelta
|
from datetime import UTC, datetime, timedelta
|
||||||
|
from pathlib import Path
|
||||||
from typing import Any, TypedDict
|
from typing import Any, TypedDict
|
||||||
|
|
||||||
import yaml
|
import yaml
|
||||||
|
|
@ -32,6 +25,13 @@ from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
from app.db import async_session_maker
|
from app.db import async_session_maker
|
||||||
from app.services.connector_service import ConnectorService
|
from app.services.connector_service import ConnectorService
|
||||||
|
|
||||||
|
# Add parent directory to path so 'app' module can be found when running directly
|
||||||
|
_THIS_FILE = Path(__file__).resolve()
|
||||||
|
_BACKEND_ROOT = _THIS_FILE.parent.parent.parent.parent # surfsense_backend/
|
||||||
|
if str(_BACKEND_ROOT) not in sys.path:
|
||||||
|
sys.path.insert(0, str(_BACKEND_ROOT))
|
||||||
|
|
||||||
|
|
||||||
# =============================================================================
|
# =============================================================================
|
||||||
# LLM Configuration Loading
|
# LLM Configuration Loading
|
||||||
# =============================================================================
|
# =============================================================================
|
||||||
|
|
@ -854,13 +854,15 @@ def create_search_knowledge_base_tool(
|
||||||
def build_surfsense_system_prompt(
|
def build_surfsense_system_prompt(
|
||||||
today: datetime | None = None,
|
today: datetime | None = None,
|
||||||
user_instructions: str | None = None,
|
user_instructions: str | None = None,
|
||||||
|
enable_citations: bool = True,
|
||||||
) -> str:
|
) -> str:
|
||||||
"""
|
"""
|
||||||
Build the SurfSense system prompt with optional user instructions.
|
Build the SurfSense system prompt with optional user instructions and citation toggle.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
today: Optional datetime for today's date (defaults to current UTC date)
|
today: Optional datetime for today's date (defaults to current UTC date)
|
||||||
user_instructions: Optional user instructions to inject into the system prompt
|
user_instructions: Optional user instructions to inject into the system prompt
|
||||||
|
enable_citations: Whether to include citation instructions in the prompt (default: True)
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
Complete system prompt string
|
Complete system prompt string
|
||||||
|
|
@ -876,6 +878,11 @@ def build_surfsense_system_prompt(
|
||||||
</user_instructions>
|
</user_instructions>
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
# Include citation instructions only if enabled
|
||||||
|
citation_section = (
|
||||||
|
f"\n{SURFSENSE_CITATION_INSTRUCTIONS}" if enable_citations else ""
|
||||||
|
)
|
||||||
|
|
||||||
return f"""
|
return f"""
|
||||||
<system_instruction>
|
<system_instruction>
|
||||||
You are SurfSense, a reasoning and acting AI agent designed to answer user questions using the user's personal knowledge base.
|
You are SurfSense, a reasoning and acting AI agent designed to answer user questions using the user's personal knowledge base.
|
||||||
|
|
@ -900,9 +907,7 @@ You have access to the following tools:
|
||||||
|
|
||||||
- User: "What did I discuss on Slack last week about the React migration?"
|
- User: "What did I discuss on Slack last week about the React migration?"
|
||||||
- Call: `search_knowledge_base(query="React migration", connectors_to_search=["SLACK_CONNECTOR"], start_date="YYYY-MM-DD", end_date="YYYY-MM-DD")`
|
- Call: `search_knowledge_base(query="React migration", connectors_to_search=["SLACK_CONNECTOR"], start_date="YYYY-MM-DD", end_date="YYYY-MM-DD")`
|
||||||
</tool_call_examples>
|
</tool_call_examples>{citation_section}
|
||||||
|
|
||||||
{SURFSENSE_CITATION_INSTRUCTIONS}
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -920,6 +925,7 @@ def create_surfsense_deep_agent(
|
||||||
db_session: AsyncSession,
|
db_session: AsyncSession,
|
||||||
connector_service: ConnectorService,
|
connector_service: ConnectorService,
|
||||||
user_instructions: str | None = None,
|
user_instructions: str | None = None,
|
||||||
|
enable_citations: bool = True,
|
||||||
):
|
):
|
||||||
"""
|
"""
|
||||||
Create a SurfSense deep agent with knowledge base search capability.
|
Create a SurfSense deep agent with knowledge base search capability.
|
||||||
|
|
@ -931,6 +937,8 @@ def create_surfsense_deep_agent(
|
||||||
connector_service: Initialized connector service
|
connector_service: Initialized connector service
|
||||||
user_instructions: Optional user instructions to inject into the system prompt.
|
user_instructions: Optional user instructions to inject into the system prompt.
|
||||||
These will be added to the system prompt to customize agent behavior.
|
These will be added to the system prompt to customize agent behavior.
|
||||||
|
enable_citations: Whether to include citation instructions in the system prompt (default: True).
|
||||||
|
When False, the agent will not be instructed to add citations to responses.
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
CompiledStateGraph: The configured deep agent
|
CompiledStateGraph: The configured deep agent
|
||||||
|
|
@ -947,7 +955,8 @@ def create_surfsense_deep_agent(
|
||||||
model=llm,
|
model=llm,
|
||||||
tools=[search_tool],
|
tools=[search_tool],
|
||||||
system_prompt=build_surfsense_system_prompt(
|
system_prompt=build_surfsense_system_prompt(
|
||||||
user_instructions=user_instructions
|
user_instructions=user_instructions,
|
||||||
|
enable_citations=enable_citations,
|
||||||
),
|
),
|
||||||
context_schema=SurfSenseContextSchema,
|
context_schema=SurfSenseContextSchema,
|
||||||
)
|
)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue