{"id":"pg_01M4PM01V2CQDZVE2TSAP86VPM","space":"openvibe","slug":"openvibe-ai","url":"https://openvibe.wiki/w/openvibe/openvibe-ai","state":"published","visibility":"public","revision":2,"title":"OpenVibe.AI","summary":"The second-party AI authority: providers, models, routing, versioned workflows, runs with citations and provenance, cache and quotas, with an OpenAI-compatible endpoint, used in production by OpenVibe.Live, OpenVibe.Network and OpenVibe.Space.","body_markdown":"**OpenVibe.AI** is the reusable AI authority of the OpenVibe network, on `127.0.0.1:4700` and public at `https://ai.openvibe.services` since 2026-10-07 (unit `openvibe-ai.service`). It is alpha.\n\n## What it does\n\nThe README describes it as owning \"providers, models, routing, prompt templates, workflows, runs, citations, cache and quotas for every product\". Products run registered, versioned workflows, and every run returns a draft and evidence package (structured output plus citations and provenance) attributed to a workflow, its version, a model and a run id, never to a person. Providers include a deterministic `stub`, any OpenAI-compatible API, the OpenAI Responses API, Anthropic, an HTTP seam, whisper.cpp and a local llama.cpp model. Routing can fall back, with circuit breakers; quotas refuse before any provider call; a person's own provider key is encrypted at rest. A staff operator console is server-rendered and needs [[OpenVibe.Network]] SSO.\n\nIt also answers OpenAI's Chat Completions: `POST /v1/chat/completions` and `GET /v1/models`, so a client built for OpenAI's API, such as an SDK or a coding agent, points its base URL at `https://ai.openvibe.services/v1` with an app's or a first-party service's Network token. Speech-to-text runs on this host: NVIDIA Parakeet TDT 0.6B v3 for English and 24 European languages, and whisper.cpp for the rest.\n\n## What it does not do yet\n\nThe README states that AI never owns publication truth: Wiki, Blog, News, Live and the rest decide what is published. Developer-app runs stay on local capacity while no tier budget governs their project, and metered models are not yet in use there. Live's VOD and clip overviews do not yet call `media.analyze`; speech and embedding routes still have a single upstream and answer `503 provider.unavailable` when it fails.\n\n## How it fits the network\n\n[[OpenVibe.Live]] runs with `AI_SERVICE=remote`, so its shared-key calls become runs here, and [[OpenVibe.Network]]'s footer copy calls `network.site_copy`. [[OpenVibe.Space]]'s builder and a space's own AI run here, and [[OpenVibe.Codes]]' harnesses use the OpenAI-compatible endpoint. AI depends on [[OpenVibe.Network]], [[OpenVibe.Events]] for the `ai.run.*` outbox relay, [[OpenVibe.Media]] for recordings, and [[OpenVibe.Host]] data roles. Publishing products call AI's workflows for drafts; AI never publishes them.\n\n## Runtime and status\n\nNode 22 and Express on PostgreSQL (`ov_ai`); the local model runs as `openvibe-llm.service` on `127.0.0.1:8090`. STATUS.json records the stage as \"alpha\" and the service deployed. License: AGPL-3.0.","published_at":"2026-10-11T23:15:33.359Z","revision_published_at":"2026-10-20T22:00:28.470Z","revision_created_at":"2026-10-20T22:00:28.449Z","authorship":{"mode":"imported","workflow":null,"reviewed":false},"infobox":[{"key":"repository","label":"Repository","type":"url","value":"https://github.com/OpenVibers/OpenVibe.AI"},{"key":"domain","label":"Domain","type":"text","value":"ai.openvibe.services"},{"key":"port","label":"Port","type":"number","value":4700},{"key":"runtime","label":"Runtime","type":"text","value":"Node 22/Express, PostgreSQL"},{"key":"status","label":"Status","type":"text","value":"alpha"},{"key":"license","label":"License","type":"text","value":"AGPL-3.0"}],"citations":[{"url":"https://github.com/OpenVibers/OpenVibe.AI/blob/abde2698ce7c75e45526af8ded7bb9d543bea6f5/README.md","title":"OpenVibe.AI README (commit abde269)","source_item_id":null,"retrieved_at":"2026-10-20T22:00:00.000Z","quote":"Providers, models, routing, prompt templates, workflows, runs, citations, cache and quotas for every product.","license_note":null},{"url":"https://github.com/OpenVibers/OpenVibe.AI/blob/abde2698ce7c75e45526af8ded7bb9d543bea6f5/README.md","title":"OpenVibe.AI README (commit abde269)","source_item_id":null,"retrieved_at":"2026-10-20T22:00:00.000Z","quote":"points its base URL at `https://ai.openvibe.services/v1`","license_note":null},{"url":"https://github.com/OpenVibers/OpenVibe.AI/blob/abde2698ce7c75e45526af8ded7bb9d543bea6f5/README.md","title":"OpenVibe.AI README (commit abde269)","source_item_id":null,"retrieved_at":"2026-10-20T22:00:00.000Z","quote":"NVIDIA Parakeet TDT 0.6B v3 (`parakeet-cli`) for English and 24 European","license_note":null},{"url":"https://github.com/OpenVibers/OpenVibe.AI/blob/abde2698ce7c75e45526af8ded7bb9d543bea6f5/README.md","title":"OpenVibe.AI README (commit abde269)","source_item_id":null,"retrieved_at":"2026-10-20T22:00:00.000Z","quote":"until a second upstream exists, an unavailable sole provider answers `503 provider.unavailable`","license_note":null},{"url":"https://github.com/OpenVibers/OpenVibe.AI/blob/abde2698ce7c75e45526af8ded7bb9d543bea6f5/README.md","title":"OpenVibe.AI README (commit abde269)","source_item_id":null,"retrieved_at":"2026-10-20T22:00:00.000Z","quote":"on route `space.build`","license_note":null}],"attachments":[],"links":[{"space":"openvibe","slug":"openvibe-codes"},{"space":"openvibe","slug":"openvibe-events"},{"space":"openvibe","slug":"openvibe-host"},{"space":"openvibe","slug":"openvibe-live"},{"space":"openvibe","slug":"openvibe-media"},{"space":"openvibe","slug":"openvibe-network"},{"space":"openvibe","slug":"openvibe-space"}],"indexability":{"indexable":false,"reasons":["ai_generated_unreviewed"]}}