Skip to content

ain3sh/vizier

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

70 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Vizier

From Noise to Signal: Because 'Insight' Isn't Just Another Token

πŸš€ Inspiration

Every serious researcher β€” from grad students grinding out their lit reviews to tenured professors trying to track five subfields at once β€” knows the pain:

  • New research moves too fast
  • It's scattered across a dozen platforms
  • And if you blink, you've missed a whole trend

Between arXiv, Twitter threads, conference keynotes, and shadow releases on GitHub, there's no single feed that captures the full signal.

We weren't inspired by another one-shot summarizer. We were inspired by how actual researchers work:

  • Constant pivots between sources
  • Zooming in and out across timescales
  • Evaluating claims, not just regurgitating them
  • Prioritizing trust, depth, and novelty

So we built Vizier β€” not another autocomplete wrapper, but a system that actually understands your goals and assembles a live research team around them.

Because in 2025, Insight isn't just another token.

🧠 What Vizier Actually Does

Vizier is a modular, agentic research engine β€” your personal research ops team, not just a chatbot. Whether you're building a newsletter, writing a paper, pitching an idea, or just staying on the bleeding edge, Vizier gives you:

  • πŸ” Precision-curated content from credible, multi-platform sources
  • 🧱 Structured, editable reports tailored to your research priorities
  • 🧠 Control over what gets emphasized, where deeper sourcing is needed, and how frequent updates should be

Built for:

  • πŸ§‘β€πŸ”¬ Researchers and technical professionals who need rigorous updates on specialized domains
  • πŸŽ“ Students and professors tracking rapid fields like GenAI, climate science, or synthetic bio
  • πŸ“£ Content creators and analysts writing newsletters, reports, or breakdowns on bleeding-edge developments

Once you've locked in a great output, you can:

  • πŸ“… Schedule that research plan to auto-run daily, weekly, or monthly
  • πŸ” Revisit past reports, tweak scopes, swap source weights, or layer in new domains

πŸ” What Makes Vizier Agentic?

This isn't just "use LangChain and call it a day." Vizier's agents think for themselves.

🧭 Router v0_4

Analyzes your refined query and decides:

  • How many agents to spawn
  • Which domains get which budget
  • Which model contexts are needed

πŸ”Ž Web and Twitter Search Agents

Don't just follow rules β€” they evaluate:

  • How noisy a domain is
  • Whether depth is sufficient
  • If second-level validation is required

πŸ§ͺ Source Review Agents

Actively rerank or prune content if trust scores fall short, pushing quality higher through intelligent evaluation.

πŸ›  Technical Architecture

Core Components

  1. 🧠 Query Refiner

    • Builds multi-component research plans
    • Considers user role and goals
    • Sets update frequency parameters
  2. 🧭 Router v0_4

    • Maps query scope to modality
    • Assigns sourcing budgets
    • Manages independent agents
  3. ✍️ Writer Agent

    • Synthesizes modular content
    • Auto-queries for clarification
    • Enables source re-ranking
  4. ⚑ Live Agent Graph UI

    • SSE-driven real-time updates
    • Visual decision tracing
    • Interactive feedback system

πŸ›  Backend Architecture

Core Components

  1. Query Processor Pipeline

    • Query Refinement (Claude 3 Sonnet)
    • Web Search Agent
    • Twitter Search Agent
    • Source Review & Reranking
    • Router_04 for Agent Orchestration
    • Draft Generation
  2. State Management

    • Real-time SSE progress streaming
    • Session persistence
    • Source caching and reranking
  3. Database Schema

    • Queries table with JSONB for source storage
    • Drafts with versioning
    • User profiles and preferences

API Design

  1. Query Flow

    POST /queries          # Create new query
    GET  /queries/{id}     # Get query status
    POST /queries/{id}/refine  # Start refinement
    GET  /queries/stream/{id}  # SSE progress updates
    
  2. Source Review

    GET  /queries/{id}/sources      # Get sources for review
    POST /queries/{id}/sources/review  # Submit reviewed sources
    
  3. Draft Management

    POST /drafts/generate  # Generate from sources
    GET  /drafts/{id}      # Get draft content
    POST /drafts/{id}/accept  # Accept draft
    POST /drafts/{id}/reject  # Reject with feedback
    GET  /drafts/stream/{id}  # Stream generation
    

Data Flow

  1. Query Processing

    graph TD
    A[Raw Query] --> B[Query Refinement]
    B --> C[Web Search]
    B --> D[Twitter Search]
    C --> E[Source Review]
    D --> E
    E --> F[Router_04]
    F --> G[Draft Generation]
    
    Loading
  2. Source Processing

    graph TD
    A[Raw Sources] --> B[Trust Scoring]
    B --> C[User Review]
    C --> D[Final Reranking]
    D --> E[Router_04]
    
    Loading

Real-time Updates

The backend uses Server-Sent Events (SSE) to provide real-time updates on:

  • Query refinement progress
  • Source collection status
  • Source review readiness
  • Draft generation progress

Events are emitted in the format:

{
  "stage": "ProcessStage",
  "timestamp": "datetime",
  "data": { stage-specific data }
}

Technologies Used

  • FastAPI - Asynchronous API framework
  • PostgreSQL - JSONB storage for flexible document handling
  • SSE - Real-time event streaming
  • OpenRouter - Model provider abstraction and fallback
  • Claude 3 Sonnet - Primary LLM for refinement and generation
  • JWT - Authentication and session management

πŸ’» Development Setup

Prerequisites

Frontend

  • Node.js (v18+)
  • npm (v9+) or yarn
  • Visual Studio Code (recommended)

Backend

  • Python 3.10+
  • PostgreSQL
  • Google OAuth credentials

Installation

  1. Clone the repository:
git clone https://github.com/your-username/vizier.git
cd vizier
  1. Backend Setup:
# Create virtual environment
python -m venv venv

# Activate it
# On Windows:
venv\Scripts\activate
# On macOS/Linux:
source venv/bin/activate

# Install dependencies
pip install -r requirements.txt
  1. Configure Backend Environment: Create a .env file:
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
REDIRECT_URI=http://localhost:8000/auth/callback
FRONTEND_URL=http://localhost:3000
JWT_SECRET=
DATABASE_URL=
sslmode=require
  1. Frontend Setup:
cd frontend
npm install

Running the Application

Development Mode

Backend:

uvicorn main:app --reload

Frontend:

npm run dev
# or
yarn dev

Access the application at http://localhost:5173

Backend Development Setup

  1. Set up PostgreSQL:

    createdb vizier
  2. Configure environment:

    cp example.env .env
    # Edit .env with your credentials:
    # - DATABASE_URL
    # - JWT_SECRET
    # - OPENROUTER_API_KEY
  3. Initialize database:

    python -m alembic upgrade head
  4. Run development server:

    uvicorn main:app --reload

πŸ“‚ Project Structure

vizier/
β”œβ”€β”€ frontend/
β”‚   β”œβ”€β”€ public/                        # Static files
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ app/
β”‚   β”‚   β”‚   β”œβ”€β”€ pages/                 # Application pages
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ discover/          # Discover page
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ graph/             # Graph visualization
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ library/           # Library page
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ login/             # Login and authentication
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ onboarding/        # User onboarding
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ query/             # Query interface
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ settings/          # Settings page
β”‚   β”‚   β”‚   β”‚   └── spaces/            # Spaces page
β”‚   β”‚   β”‚   β”œβ”€β”€ App.tsx                # Main application component
β”‚   β”‚   β”‚   β”œβ”€β”€ App.css                # Main application styles
β”‚   β”‚   β”‚   β”œβ”€β”€ index.css              # Global styles
β”‚   β”‚   β”‚   └── main.tsx               # Application entry point
β”‚   β”‚   β”œβ”€β”€ components/                # Reusable components
β”‚   β”‚   β”‚   β”œβ”€β”€ navigation/            # Navigation components
β”‚   β”‚   β”‚   └── querybar/              # Query bar components
β”‚   β”‚   └── vite-env.d.ts              # Vite environment typings
β”‚   β”œβ”€β”€ index.html                     # HTML entry point
β”‚   β”œβ”€β”€ tsconfig.json                  # TypeScript configuration
β”‚   β”œβ”€β”€ tsconfig.app.json              # App-specific TypeScript config
β”‚   β”œβ”€β”€ tsconfig.node.json             # Node-specific TypeScript config
β”‚   β”œβ”€β”€ vite.config.ts                 # Vite configuration
β”‚   β”œβ”€β”€ package.json                   # Project dependencies and scripts
β”‚   └── README.md                      # Project documentation

β”œβ”€β”€ backend/
β”‚   β”œβ”€β”€ .gitignore
β”‚   β”œβ”€β”€ database.py
β”‚   β”œβ”€β”€ dummyapi.py
β”‚   β”œβ”€β”€ main.py
β”‚   β”œβ”€β”€ README.md
β”‚   β”œβ”€β”€ requirements.txt
β”‚   β”œβ”€β”€ test.py
β”‚   β”œβ”€β”€ processes/
β”‚   β”‚   β”œβ”€β”€ main.py
β”‚   β”‚   β”œβ”€β”€ connectors/
β”‚   β”‚   β”‚   β”œβ”€β”€ router_0.py
β”‚   β”‚   β”‚   └── router_04.py
β”‚   β”‚   β”œβ”€β”€ query/
β”‚   β”‚   β”‚   └── refiner.py
β”‚   β”‚   β”œβ”€β”€ report/
β”‚   β”‚   β”‚   β”œβ”€β”€ refiner.py
β”‚   β”‚   β”‚   └── writer.py
β”‚   β”‚   β”œβ”€β”€ search/
β”‚   β”‚   β”‚   β”œβ”€β”€ agents.py
β”‚   β”‚   β”‚   β”œβ”€β”€ twitter.py
β”‚   β”‚   β”‚   └── web.py
β”‚   β”‚   β”œβ”€β”€ sourcing/
β”‚   β”‚   β”‚   β”œβ”€β”€ agent.py
β”‚   β”‚   β”‚   └── director.py
β”‚   β”‚   └── writer/
β”‚   β”‚       └── generator.py
β”‚   └── routers/
β”‚       β”œβ”€β”€ auth.py
β”‚       β”œβ”€β”€ drafts.py
β”‚       β”œβ”€β”€ openrouter.py
β”‚       β”œβ”€β”€ queries.py
β”‚       └── user.py

πŸ”Œ API Integration

Refer to our API Documentation for detailed endpoint specifications and integration guides.

🀝 Contributing

  1. Fork the repository
  2. Create your feature branch: git checkout -b feature/amazing-feature
  3. Commit your changes: git commit -m 'Add amazing feature'
  4. Push to the branch: git push origin feature/amazing-feature
  5. Open a pull request

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors