- localization-svc: defaultLocale ru, resolveLocale only by geo - web-svc: DEFAULT_LOCALE ru, layout lang=ru, embeddedTranslations fallback ru - countryToLocale: default ru when no country or unknown country Co-authored-by: Cursor <cursoragent@cursor.com>
3.7 KiB
How to Contribute to GooSeek
Thanks for your interest in contributing to GooSeek! Your help makes this project better. This guide explains how to contribute effectively.
GooSeek is a modern AI chat application with advanced search capabilities.
Project Structure
GooSeek's codebase is organized as follows:
- UI Components and Pages:
- Components (
src/components): Reusable UI components. - Pages and Routes (
src/app): Next.js app directory structure with page components.- Main app routes include: home (
/), chat (/c), discover (/discover), and library (/library).
- Main app routes include: home (
- API Routes (
src/app/api): Server endpoints implemented with Next.js route handlers.
- Components (
- Backend Logic (
src/lib): Contains all the backend functionality including search, database, and API logic.- The search system lives in
src/lib/agents/search. - The search pipeline is split into classification, research, widgets, and writing.
- Database functionality is in
src/lib/db. - Chat model and embedding model providers are in
src/lib/models/providers, and models are loaded viasrc/lib/models/registry.ts. - Prompt templates are in
src/lib/prompts. - SearXNG integration is in
src/lib/searxng.ts. - Upload search lives in
src/lib/uploads.
- The search system lives in
Where to make changes
If you are not sure where to start, use this section as a map.
-
Search behavior and reasoning
src/lib/agents/searchcontains the core chat and search pipeline.classifier.tsdecides whether research is needed and what should run.researcher/gathers information in the background.
-
Add or change a search capability
- Research tools (web, academic, discussions, uploads, scraping) live in
src/lib/agents/search/researcher/actions. - Tools are registered in
src/lib/agents/search/researcher/actions/index.ts.
- Research tools (web, academic, discussions, uploads, scraping) live in
-
Add or change widgets
- Widgets live in
src/lib/agents/search/widgets. - Widgets run in parallel with research and show structured results in the UI.
- Widgets live in
-
Model integrations
- Providers live in
src/lib/models/providers. - Add new providers there and wire them into the model registry so they show up in the app.
- Providers live in
-
Architecture docs
- High level overview:
docs/architecture/README.md - High level flow:
docs/architecture/WORKING.md
- High level overview:
API Documentation
GooSeek includes API documentation for programmatic access.
- Search API: For detailed documentation, see
docs/API/SEARCH.md.
Setting Up Your Environment
GooSeek развёртывается только через Kubernetes (встроенный в Docker Desktop, не Docker-контейнеры):
- Запустите Docker Desktop, включите Kubernetes (Settings → Kubernetes).
- Выполните
./deploy/k3s/deploy.shиз корня репозитория. - Откройте приложение по URL из Ingress (https://gooseek.ru).
Миграции БД выполняются автоматически при деплое. Конфигурация сервисов: deploy/k3s/deploy.config.yaml.
Coding and Contribution Practices
Before committing changes:
- Ensure that your code functions correctly by thorough testing.
- Always run
npm run format:writeto format your code according to the project's coding standards. This helps maintain consistency and code quality. - We currently do not have a code of conduct, but it is in the works. In the meantime, please be mindful of how you engage with the project and its community.
Following these steps will help maintain the integrity of GooSeek's codebase and facilitate a smoother integration of your valuable contributions. Thank you for your support and commitment to improving GooSeek.