Repository navigation
Expand file tree
/
Copy pathdocker-compose.agents.yml
More file actions
98 lines (96 loc) · 4.76 KB
/
Copy pathdocker-compose.agents.yml
File metadata and controls
98 lines (96 loc) · 4.76 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
networks:
frontend:
external: true
app:
driver: bridge
internal: false
services:
openwebui:
environment:
# Tool server connections
TOOL_SERVER_CONNECTIONS: |-
[
{
"type": "mcp",
"url": "http://search-agent:8001/mcp",
"spec_type": "url",
"spec": "",
"path": "openapi.json",
"auth_type": "none",
"key": "",
"config": {
"enable": true,
"access_grants": [
{ "principal_type": "user", "principal_id": "*", "permission": "read" }
]
},
"info": {
"id": "websearch",
"name": "websearch",
"description": "Search the internet"
}
}
]
search-agent:
#image: ghcr.io/aarhusai/search-agent:${SEARCH_AGENT_VERSION:-latest}
build:
dockerfile: Dockerfile
context: ./agents/search-agent
target: ${TARGET:-dev}
command: [ "uv", "run", "uvicorn", "search_agent.main:app", "--host", "0.0.0.0", "--port", "8001", "--reload"]
ports:
- '8001'
networks:
- app
depends_on:
- searxng
healthcheck:
test: [ "CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8001/health')" ]
interval: 15s
timeout: 5s
retries: 3
start_period: 10s
environment:
SEARCH_AGENT_LLM_BASE_URL: ${SEARCH_AGENT_LLM_BASE_URL:?}
SEARCH_AGENT_LLM_API_KEY: ${SEARCH_AGENT_LLM_API_KEY:?}
SEARCH_AGENT_LLM_MODEL: ${SEARCH_AGENT_LLM_MODEL:?}
SEARCH_AGENT_SEARCH_PROVIDER: ${SEARCH_AGENT_SEARCH_PROVIDER:-searxng}
SEARCH_AGENT_SEARXNG_URL: ${SEARCH_AGENT_SEARXNG_URL:-http://searxng:8080}
SEARCH_AGENT_STAAN_URL: ${SEARCH_AGENT_STAAN_URL:-https://api.staan.ai}
SEARCH_AGENT_STAAN_API_KEY: ${SEARCH_AGENT_STAAN_API_KEY:-}
SEARCH_AGENT_STAAN_MARKET: ${SEARCH_AGENT_STAAN_MARKET:-en-us}
SEARCH_AGENT_STAAN_TIMEOUT: ${SEARCH_AGENT_STAAN_TIMEOUT:-10}
SEARCH_AGENT_STAAN_ENRICHMENT: ${SEARCH_AGENT_STAAN_ENRICHMENT:-full_content}
SEARCH_AGENT_STAAN_MAX_SNIPPETS: ${SEARCH_AGENT_STAAN_MAX_SNIPPETS:-3}
SEARCH_AGENT_STAAN_MIN_SCORE: ${SEARCH_AGENT_STAAN_MIN_SCORE:-0.1}
SEARCH_AGENT_STAAN_CONTENT_MAX_CHARS: ${SEARCH_AGENT_STAAN_CONTENT_MAX_CHARS:-5000}
SEARCH_AGENT_STAAN_CONTENT_MAX_RESULTS: ${SEARCH_AGENT_STAAN_CONTENT_MAX_RESULTS:-5}
SEARCH_AGENT_STAAN_MAX_RESPONSE_BYTES: ${SEARCH_AGENT_STAAN_MAX_RESPONSE_BYTES:-10000000}
SEARCH_AGENT_DATETIME_TIMEZONE: ${SEARCH_AGENT_DATETIME_TIMEZONE:-UTC}
SEARCH_AGENT_DATETIME_FORMAT: ${SEARCH_AGENT_DATETIME_FORMAT:-%A, %B %-d, %Y, %H:%M %Z}
SEARCH_AGENT_MCP_ALLOWED_HOSTS: ${SEARCH_AGENT_MCP_ALLOWED_HOSTS:-["search-agent:8001","localhost:8001"]}
SEARCH_AGENT_SEARXNG_TIMEOUT: ${SEARCH_AGENT_SEARXNG_TIMEOUT:-15}
SEARCH_AGENT_SEARCH_PIPELINE_TIMEOUT: ${SEARCH_AGENT_SEARCH_PIPELINE_TIMEOUT:-90}
SEARCH_AGENT_LLM_TIMEOUT: ${SEARCH_AGENT_LLM_TIMEOUT:-60}
SEARCH_AGENT_SEARCH_QUERY_PLANNER_PROMPT: ${SEARCH_AGENT_SEARCH_QUERY_PLANNER_PROMPT:-}
SEARCH_AGENT_SEARCH_ANALYZE_SYNTHESIZE_PROMPT: ${SEARCH_AGENT_SEARCH_ANALYZE_SYNTHESIZE_PROMPT:-}
SEARCH_AGENT_SEARCH_SKIP_PLANNER_FOR_SIMPLE_QUERIES: ${SEARCH_AGENT_SEARCH_SKIP_PLANNER_FOR_SIMPLE_QUERIES:-true}
SEARCH_AGENT_SEARCH_MAX_QUERIES: ${SEARCH_AGENT_SEARCH_MAX_QUERIES:-3}
SEARCH_AGENT_SEARCH_MAX_RESULTS: ${SEARCH_AGENT_SEARCH_MAX_RESULTS:-15}
SEARCH_AGENT_SEARCH_SIMPLE_QUERY_MAX_WORDS: ${SEARCH_AGENT_SEARCH_SIMPLE_QUERY_MAX_WORDS:-15}
SEARCH_AGENT_SEARCH_SIMPLE_QUERY_MAX_QUESTIONS: ${SEARCH_AGENT_SEARCH_SIMPLE_QUERY_MAX_QUESTIONS:-1}
SEARCH_AGENT_SEARCH_FETCH_PAGE_CONTENT: ${SEARCH_AGENT_SEARCH_FETCH_PAGE_CONTENT:-false}
SEARCH_AGENT_SEARCH_FETCH_MAX_PAGES: ${SEARCH_AGENT_SEARCH_FETCH_MAX_PAGES:-5}
SEARCH_AGENT_SEARCH_FETCH_TIMEOUT: ${SEARCH_AGENT_SEARCH_FETCH_TIMEOUT:-10}
SEARCH_AGENT_SEARCH_FETCH_MAX_CHARS: ${SEARCH_AGENT_SEARCH_FETCH_MAX_CHARS:-5000}
SEARCH_AGENT_SEARCH_FETCH_MAX_BYTES: ${SEARCH_AGENT_SEARCH_FETCH_MAX_BYTES:-2000000}
SEARCH_AGENT_CACHE_BACKEND: ${SEARCH_AGENT_CACHE_BACKEND:-redis}
SEARCH_AGENT_CACHE_REDIS_URL: ${SEARCH_AGENT_CACHE_REDIS_URL:-redis://redis:6379/2}
SEARCH_AGENT_CACHE_FETCH_TTL: ${SEARCH_AGENT_CACHE_FETCH_TTL:-3600}
SEARCH_AGENT_CACHE_FETCH_NEGATIVE_TTL: ${SEARCH_AGENT_CACHE_FETCH_NEGATIVE_TTL:-300}
SEARCH_AGENT_CACHE_SEARXNG_TTL: ${SEARCH_AGENT_CACHE_SEARXNG_TTL:-300}
SEARCH_AGENT_CACHE_STAAN_TTL: ${SEARCH_AGENT_CACHE_STAAN_TTL:-300}
SEARCH_AGENT_CACHE_PLANNER_TTL: ${SEARCH_AGENT_CACHE_PLANNER_TTL:-21600}
SEARCH_AGENT_DEBUG: ${SEARCH_AGENT_DEBUG:-false}
volumes:
- ./agents/search-agent/:/app