mirror of
https://github.com/khoaliber/khoj.git
synced 2026-03-09 05:39:12 +00:00
Pass background context to iterating chat director
This commit is contained in:
@@ -498,6 +498,11 @@ You are an extremely methodical planner. Your goal is to make a plan to execute
|
|||||||
|
|
||||||
If you already know the answer to the question, return an empty response, e.g., {{}}.
|
If you already know the answer to the question, return an empty response, e.g., {{}}.
|
||||||
|
|
||||||
|
Background Context:
|
||||||
|
- Current Date: {day_of_week}, {current_date}
|
||||||
|
- User's Location: {location}
|
||||||
|
- {username}
|
||||||
|
|
||||||
Which of the data sources listed below you would use to answer the user's question? You **only** have access to the following data sources:
|
Which of the data sources listed below you would use to answer the user's question? You **only** have access to the following data sources:
|
||||||
|
|
||||||
{tools}
|
{tools}
|
||||||
@@ -523,8 +528,7 @@ previous_iteration = PromptTemplate.from_template(
|
|||||||
data_source: {data_source}
|
data_source: {data_source}
|
||||||
query: {query}
|
query: {query}
|
||||||
summary: {summary}
|
summary: {summary}
|
||||||
---
|
---"""
|
||||||
""".strip()
|
|
||||||
)
|
)
|
||||||
|
|
||||||
pick_relevant_information_collection_tools = PromptTemplate.from_template(
|
pick_relevant_information_collection_tools = PromptTemplate.from_template(
|
||||||
|
|||||||
@@ -713,6 +713,7 @@ async def chat(
|
|||||||
uploaded_image_url=uploaded_image_url,
|
uploaded_image_url=uploaded_image_url,
|
||||||
agent=agent,
|
agent=agent,
|
||||||
send_status_func=partial(send_event, ChatEvent.STATUS),
|
send_status_func=partial(send_event, ChatEvent.STATUS),
|
||||||
|
user_name=user_name,
|
||||||
location=location,
|
location=location,
|
||||||
file_filters=conversation.file_filters if conversation else [],
|
file_filters=conversation.file_filters if conversation else [],
|
||||||
):
|
):
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import json
|
import json
|
||||||
import logging
|
import logging
|
||||||
|
from datetime import datetime
|
||||||
from typing import Any, Callable, Dict, List, Optional
|
from typing import Any, Callable, Dict, List, Optional
|
||||||
|
|
||||||
from fastapi import Request
|
from fastapi import Request
|
||||||
@@ -48,6 +49,8 @@ async def apick_next_tool(
|
|||||||
conversation_history: dict,
|
conversation_history: dict,
|
||||||
subscribed: bool,
|
subscribed: bool,
|
||||||
uploaded_image_url: str = None,
|
uploaded_image_url: str = None,
|
||||||
|
location: LocationData = None,
|
||||||
|
user_name: str = None,
|
||||||
agent: Agent = None,
|
agent: Agent = None,
|
||||||
previous_iterations: List[InformationCollectionIteration] = None,
|
previous_iterations: List[InformationCollectionIteration] = None,
|
||||||
):
|
):
|
||||||
@@ -84,12 +87,21 @@ async def apick_next_tool(
|
|||||||
prompts.personality_context.format(personality=agent.personality) if agent and agent.personality else ""
|
prompts.personality_context.format(personality=agent.personality) if agent and agent.personality else ""
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Extract Past User Message and Inferred Questions from Conversation Log
|
||||||
|
today = datetime.today()
|
||||||
|
location_data = f"{location}" if location else "Unknown"
|
||||||
|
username = prompts.user_name.format(name=user_name) if user_name else ""
|
||||||
|
|
||||||
# TODO Add current date/time to the query
|
# TODO Add current date/time to the query
|
||||||
function_planning_prompt = prompts.plan_function_execution.format(
|
function_planning_prompt = prompts.plan_function_execution.format(
|
||||||
query=query,
|
query=query,
|
||||||
tools=tool_options_str,
|
tools=tool_options_str,
|
||||||
chat_history=chat_history,
|
chat_history=chat_history,
|
||||||
personality_context=personality_context,
|
personality_context=personality_context,
|
||||||
|
current_date=today.strftime("%Y-%m-%d"),
|
||||||
|
day_of_week=today.strftime("%A"),
|
||||||
|
username=username,
|
||||||
|
location=location_data,
|
||||||
previous_iterations=previous_iterations_history,
|
previous_iterations=previous_iterations_history,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -135,6 +147,7 @@ async def execute_information_collection(
|
|||||||
uploaded_image_url: str = None,
|
uploaded_image_url: str = None,
|
||||||
agent: Agent = None,
|
agent: Agent = None,
|
||||||
send_status_func: Optional[Callable] = None,
|
send_status_func: Optional[Callable] = None,
|
||||||
|
user_name: str = None,
|
||||||
location: LocationData = None,
|
location: LocationData = None,
|
||||||
file_filters: List[str] = [],
|
file_filters: List[str] = [],
|
||||||
):
|
):
|
||||||
@@ -150,7 +163,7 @@ async def execute_information_collection(
|
|||||||
result: str = ""
|
result: str = ""
|
||||||
|
|
||||||
this_iteration = await apick_next_tool(
|
this_iteration = await apick_next_tool(
|
||||||
query, conversation_history, subscribed, uploaded_image_url, agent, previous_iterations
|
query, conversation_history, subscribed, uploaded_image_url, location, user_name, agent, previous_iterations
|
||||||
)
|
)
|
||||||
if this_iteration.data_source == ConversationCommand.Notes:
|
if this_iteration.data_source == ConversationCommand.Notes:
|
||||||
## Extract Document References
|
## Extract Document References
|
||||||
|
|||||||
Reference in New Issue
Block a user