gpt4free (g4f) is a large-scale, community-driven Python library that aggregates dozens of free AI providers (LLMs, image, audio, video) into a unified, OpenAI-compatible interface. It provides multiple access modes: a Python client library (sync/async), a FastAPI-based API server, a Flask web GUI, a CLI tool, a Model Context Protocol (MCP) server for tool calling, a browser extension, a Discord bot, an Android app, and a Go launcher. The architecture is provider-based: each AI service (e.g., ChatGPT, Gemini, DeepSeek, Copilot, Grok, Perplexity) is wrapped in an adapter class implementing a common `AsyncGeneratorProvider` interface. The system handles authentication via cookies, OAuth flows, HAR files, and browser automation (CDP/nodriver), and supports streaming, tool/function calling, image generation, audio synthesis, and web search. It is primarily an application for consuming free AI models, not a research or data pipeline project, though it includes some data-oriented utilities like token optimization and usage tracking.
Vane is a privacy-focused, self-hosted AI answering engine that combines web search with large language models (LLMs) to produce cited, real-time answers. The system is built as a Next.js 16 application with a React frontend and a set of API routes that orchestrate a multi-step research pipeline: classification of user queries, parallel execution of search actions (web, academic, social, scrape, upload-based retrieval), widget generation (weather, stock, calculation), and final answer synthesis via an LLM. It supports multiple LLM providers (OpenAI, Anthropic, Gemini, Groq, Ollama, LM Studio, etc.) through a clean provider abstraction, and stores chat history in a local SQLite database managed by Drizzle ORM. The architecture is a monolith with clear separation of concerns: a model registry for LLM/embedding providers, a search agent with an action registry pattern, a widget system for structured data display, and a configuration manager that persists user settings to a JSON file. The frontend uses client-side streaming via EventSource to display research progress and final answers in real-time. Deployment is Docker-first, bundling a SearXNG instance for privacy-respecting web search, with multi-arch images and a slim variant. Key entry points include the main chat page (`/`), individual chat pages (`/c/[chatId]`), a news discovery page (`/discover`), and a library for uploaded documents. The primary API endpoints are `POST /api/chat` (streaming chat), `POST /api/search` (non-streaming search), and various CRUD routes for providers, config, and uploads. External dependencies include SearXNG (self-hosted), Open-Meteo (weather), Yahoo Finance (stocks), and the LLM provider APIs. The codebase demonstrates strong engineering practices with well-defined abstractions, a modular agent architecture, and a focus on privacy and local-first operation. It is actively maintained with a large community, though some areas (custom migration runner, large chat hook) show room for refinement.