Skip to content

Commit 773bc0e

Browse files
krishhloganclaude
andcommitted
Initial commit: DeepQuery open-source deep research engine
Full-stack self-hosted research engine with LangGraph multi-agent pipeline, 6 LLM providers (including local Ollama/LM Studio), 5 search backends, real-time SSE token streaming, reflection loops, SQLite history, and Docker Compose one-command deploy. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
0 parents  commit 773bc0e

54 files changed

Lines changed: 8104 additions & 0 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.env.example

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# -- Default LLM provider ------------------------------------------------------
2+
# Users can override this per-request from the UI.
3+
# Options: anthropic | openai | gemini | groq | ollama | lmstudio
4+
LLM_PROVIDER=anthropic
5+
LLM_MODEL=claude-sonnet-4-6
6+
7+
# -- Cloud API keys (add whichever you use) ------------------------------------
8+
ANTHROPIC_API_KEY=your_anthropic_api_key_here
9+
OPENAI_API_KEY=your_openai_api_key_here
10+
GEMINI_API_KEY=your_google_gemini_api_key_here
11+
GROQ_API_KEY=your_groq_api_key_here
12+
13+
# -- Local providers (no key needed, just have them running) -------------------
14+
# Ollama: run: ollama serve
15+
# LM Studio: enable local server in the app settings
16+
#
17+
# When running via Docker, set these to reach your host machine:
18+
# OLLAMA_HOST=host.docker.internal
19+
# LMSTUDIO_HOST=host.docker.internal
20+
# When running locally (no Docker), keep as localhost (the default):
21+
# OLLAMA_HOST=localhost
22+
# LMSTUDIO_HOST=localhost
23+
24+
# -- Search --------------------------------------------------------------------
25+
# Options: auto | tavily | duckduckgo | arxiv | wikipedia | searxng
26+
# "auto" = uses Tavily if key is set, otherwise falls back to DuckDuckGo (free)
27+
SEARCH_PROVIDER=auto
28+
29+
# Tavily — higher quality results, free tier at https://tavily.com
30+
TAVILY_API_KEY=your_tavily_api_key_here
31+
32+
# Bing — optional, for SearXNG or direct Bing search
33+
# BING_API_KEY=
34+
35+
# SearXNG — self-hosted meta-search engine
36+
# Run with: docker run -p 8080:8080 searxng/searxng
37+
# SEARXNG_URL=http://localhost:8080
38+
39+
# -- App -----------------------------------------------------------------------
40+
APP_ENV=development
41+
LOG_LEVEL=INFO

.github/workflows/ci.yml

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
branches: [main]
8+
9+
jobs:
10+
backend:
11+
runs-on: ubuntu-latest
12+
defaults:
13+
run:
14+
working-directory: backend
15+
16+
steps:
17+
- uses: actions/checkout@v4
18+
19+
- uses: actions/setup-python@v5
20+
with:
21+
python-version: "3.11"
22+
23+
- name: Install uv
24+
run: pip install uv
25+
26+
- name: Install dependencies
27+
run: uv pip install --system -e ".[dev]"
28+
29+
- name: Lint
30+
run: ruff check src/ tests/
31+
32+
- name: Test
33+
run: pytest tests/ --cov=src --cov-report=term-missing
34+
env:
35+
ANTHROPIC_API_KEY: "test"
36+
TAVILY_API_KEY: "test"
37+
38+
frontend:
39+
runs-on: ubuntu-latest
40+
defaults:
41+
run:
42+
working-directory: frontend
43+
44+
steps:
45+
- uses: actions/checkout@v4
46+
47+
- uses: actions/setup-node@v4
48+
with:
49+
node-version: "20"
50+
cache: "npm"
51+
cache-dependency-path: frontend/package-lock.json
52+
53+
- run: npm install
54+
- run: npm run build

.gitignore

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# Environment
2+
.env
3+
*.env.local
4+
5+
# Python
6+
__pycache__/
7+
*.pyc
8+
*.pyo
9+
.venv/
10+
venv/
11+
dist/
12+
*.egg-info/
13+
.pytest_cache/
14+
.coverage
15+
htmlcov/
16+
17+
# Node
18+
node_modules/
19+
frontend/dist/
20+
21+
# IDE
22+
.vscode/
23+
.idea/
24+
*.swp
25+
26+
# OS
27+
.DS_Store
28+
Thumbs.db

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2025 DeepQuery Contributors
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

0 commit comments

Comments
 (0)