Skip to content

feat: add Exa AI-powered search tool#164

Open
tgonzalezc5 wants to merge 1 commit intoOpenLAIR:mainfrom
tgonzalezc5:feat/exa-search-source
Open

feat: add Exa AI-powered search tool#164
tgonzalezc5 wants to merge 1 commit intoOpenLAIR:mainfrom
tgonzalezc5:feat/exa-search-source

Conversation

@tgonzalezc5
Copy link
Copy Markdown

Summary

  • Adds Exa as a new search source in the Research News feed, providing AI-powered neural/semantic web search alongside arXiv, HuggingFace, X, and Xiaohongshu
  • New search_exa.py script using the Exa REST API with configurable search queries, category filters (research paper, news, company, etc.), and date ranges
  • Full frontend integration: source icon, filter bar button, settings dialog with query/category/date controls, dashboard stat card, unified feed styling, and i18n support (en, zh-CN, ko)
  • Uses shared scoring_utils for consistent relevance/recency/popularity/quality scoring across all sources

Usage

# Set your Exa API key
export EXA_API_KEY=your-exa-api-key

# The Exa source appears automatically in the Research News dashboard
# Configure search queries, category, and date range in Settings

Files changed

  • server/scripts/research-news/search_exa.py — new Exa search script
  • server/routes/news.js — register Exa in SOURCE_REGISTRY
  • src/components/news-dashboard/view/useNewsDashboardData.ts — add exa to NewsSourceKey type
  • src/components/news-dashboard/view/SourceFilterBar.tsx — add Exa button/colors
  • src/components/news-dashboard/view/SourceIcon.tsx — add Exa icon
  • src/components/news-dashboard/view/SourceSettingsDialog.tsx — add Exa-specific settings UI
  • src/components/news-dashboard/view/NewsDashboard.tsx — add Exa stat card
  • src/components/news-dashboard/view/UnifiedFeed.tsx — add Exa feed styling
  • src/i18n/locales/{en,zh-CN,ko}/news.json — add Exa translations
  • public/icons/news/exa.svg — Exa source icon
  • .env.example — add EXA_API_KEY

Test plan

  • Set EXA_API_KEY env var and start the server
  • Navigate to Research News dashboard and verify Exa tab appears
  • Click Exa tab, open Settings, configure queries and category
  • Click "Start Search" and verify results appear with correct scoring
  • Verify settings persist across page reloads
  • Verify all three languages render correctly (en, zh-CN, ko)
  • Verify existing sources (arXiv, HuggingFace, X, Xiaohongshu) still work correctly

Add Exa (exa.ai) as a new search source in the Research News feed,
alongside arXiv, HuggingFace, X, and Xiaohongshu.

- New search_exa.py script using the Exa REST API with neural/semantic search
- Registers Exa in the server-side SOURCE_REGISTRY with configurable queries,
  category filter (research paper, news, etc.), and date range
- Full frontend integration: source icon, filter bar, settings dialog,
  dashboard stats, unified feed, and i18n (en, zh-CN, ko)
- Uses shared scoring_utils for consistent relevance/recency/quality scoring
- Sets x-exa-integration tracking header for API attribution
- Requires EXA_API_KEY environment variable (added to .env.example)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant