more optmizations
Some checks failed
Build and Push Agent Docker Image / build (push) Successful in 2m9s
Build and Push Web Docker Image / build (push) Failing after 14m53s

This commit is contained in:
2025-12-17 20:57:22 +01:00
parent 5e66859246
commit 07392c13a4
2 changed files with 12 additions and 7 deletions

View File

@@ -59,11 +59,10 @@ def embed(text, input_type):
assert resp.embeddings.float_ is not None assert resp.embeddings.float_ is not None
return resp.embeddings.float_[0] return resp.embeddings.float_[0]
def search(query, roles: list[str], limit: int = 5) -> list[dict]: def search(query, roles: list[str], limit: int = 3, max_content_length: int = 1500) -> list[dict]:
query_embedding = embed(query, 'search_query') query_embedding = embed(query, 'search_query')
if not roles: if not roles:
# No roles = no results
return [] return []
rows = conn.execute( rows = conn.execute(
@@ -71,7 +70,13 @@ def search(query, roles: list[str], limit: int = 5) -> list[dict]:
(roles, query_embedding, limit) (roles, query_embedding, limit)
).fetchall() ).fetchall()
return [{'key': row['key'], 'content': row['content']} for row in rows] docs = []
for row in rows:
content = row['content'] or ''
if len(content) > max_content_length:
content = content[:max_content_length] + '...[truncated, use get_document_page for full text]'
docs.append({'key': row['key'], 'content': content})
return docs
@mcp.tool @mcp.tool
def get_cave_location(cave: str, state: str, county: str) -> list[dict]: def get_cave_location(cave: str, state: str, county: str) -> list[dict]:

View File

@@ -23,9 +23,9 @@ logger.info("Initializing Cavepedia agent...")
def limit_history(ctx: RunContext[None], messages: list[ModelMessage]) -> list[ModelMessage]: def limit_history(ctx: RunContext[None], messages: list[ModelMessage]) -> list[ModelMessage]:
"""Limit conversation history to manage token usage and request size.""" """Limit conversation history to manage token usage."""
# Keep only the last few messages to avoid large requests hitting Cloudflare limits # Keep last 8 messages for context, but not unlimited
return messages[-4:] return messages[-8:]
def check_mcp_available(url: str, timeout: float = 5.0) -> bool: def check_mcp_available(url: str, timeout: float = 5.0) -> bool:
"""Check if MCP server is reachable via health endpoint.""" """Check if MCP server is reachable via health endpoint."""
@@ -54,7 +54,7 @@ Rules:
4. Can create ascii diagrams/maps. 4. Can create ascii diagrams/maps.
5. Be direct—no sycophantic phrases. 5. Be direct—no sycophantic phrases.
6. Keep responses concise. 6. Keep responses concise.
7. Use tools sparingly—one search usually suffices. Answer from your knowledge when possible.""" 7. Search ONCE, then answer with what you found. Do not search repeatedly for the same topic."""
def create_agent(user_roles: list[str] | None = None): def create_agent(user_roles: list[str] | None = None):