mirror of
https://github.com/khoaliber/khoj.git
synced 2026-03-07 13:23:15 +00:00
Add unit tests for agents
- Add permutations of testing for with, without knowledge base. Private, public, different users.
This commit is contained in:
@@ -640,6 +640,16 @@ class AgentAdapters:
|
||||
agents = await sync_to_async(AgentAdapters.get_all_accessible_agents)(user)
|
||||
return await sync_to_async(list)(agents)
|
||||
|
||||
@staticmethod
|
||||
async def ais_agent_accessible(agent: Agent, user: KhojUser) -> bool:
|
||||
if agent.privacy_level == Agent.PrivacyLevel.PUBLIC:
|
||||
return True
|
||||
if agent.creator == user:
|
||||
return True
|
||||
if agent.privacy_level == Agent.PrivacyLevel.PROTECTED:
|
||||
return True
|
||||
return False
|
||||
|
||||
@staticmethod
|
||||
def get_conversation_agent_by_id(agent_id: int):
|
||||
agent = Agent.objects.filter(id=agent_id).first()
|
||||
|
||||
@@ -21,6 +21,7 @@ from starlette.authentication import has_required_scope, requires
|
||||
from khoj.configure import initialize_content
|
||||
from khoj.database import adapters
|
||||
from khoj.database.adapters import (
|
||||
AgentAdapters,
|
||||
AutomationAdapters,
|
||||
ConversationAdapters,
|
||||
EntryAdapters,
|
||||
@@ -114,10 +115,16 @@ async def execute_search(
|
||||
dedupe: Optional[bool] = True,
|
||||
agent: Optional[Agent] = None,
|
||||
):
|
||||
start_time = time.time()
|
||||
|
||||
# Run validation checks
|
||||
results: List[SearchResponse] = []
|
||||
|
||||
start_time = time.time()
|
||||
|
||||
# Ensure the agent, if present, is accessible by the user
|
||||
if user and agent and not await AgentAdapters.ais_agent_accessible(agent, user):
|
||||
logger.error(f"Agent {agent.slug} is not accessible by user {user}")
|
||||
return results
|
||||
|
||||
if q is None or q == "":
|
||||
logger.warning(f"No query param (q) passed in API call to initiate search")
|
||||
return results
|
||||
|
||||
Reference in New Issue
Block a user