Skip to content

Commit 16dbb83

Browse files
committed
✨ feat: add GitHub Models integration blueprint document
This commit introduces a new document detailing the integration of AI capabilities using the GitHub Models API as part of the VibeAuracle engineering team's architecture. Additionally, it removes the blog configuration from the Docusaurus setup to simplify the documentation structure and enhance focus on core features.
1 parent 068d8cf commit 16dbb83

2 files changed

Lines changed: 44 additions & 20 deletions

File tree

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
---
2+
sidebar_position: 10
3+
---
4+
5+
# GitHub Models Integration
6+
7+
*Note: This is an internal technical blueprint for the VibeAuracle engineering team.*
8+
9+
This document provides a technical blueprint for integrating AI capabilities using the **GitHub Models API**. While VibeAuracle supports multiple providers, this integration pattern is core to our "Universal API" strategy.
10+
11+
## 1. Architecture Overview
12+
13+
The integration follows a "Unified API" pattern. Instead of integrating multiple SDKs (OpenAI, Anthropic, Mistral), we use the **GitHub Models API**, which provides an OpenAI-compatible interface for dozens of leading models.
14+
15+
### Key Components
16+
- **Model Manager**: Handles discovery and caching of available models.
17+
- **API Client**: Manages authentication and HTTP communication.
18+
- **Prompt Builder**: Structures application data into messages for the LLM.
19+
20+
## 2. Authentication
21+
22+
The API uses a standard GitHub Personal Access Token (PAT) as a Bearer token. No special SDK is required; standard HTTP headers are sufficient.
23+
24+
## 3. Model Discovery & Caching
25+
26+
One of the most powerful features of the GitHub Models API is the ability to dynamically discover available models. This allows VibeAuracle to automatically support new models as they are added to the platform.
27+
28+
### Fetching Models
29+
The `/models` endpoint returns metadata for all available models, including their tasks (e.g., `chat-completion`).
30+
31+
## 4. Inference Integration
32+
33+
The core interaction uses a Chat Completion schema. This involves a `system` prompt to define behavior and a `user` prompt for the actual data.
34+
35+
## 5. Advanced Capabilities
36+
37+
### Multi-Model Support
38+
By using a unified API, users can switch between models like `gpt-4o`, `Phi-3`, or `Mistral-large` without code changes.
39+
40+
### Context Compression
41+
When dealing with large inputs (like code diffs), it's essential to compress data to fit within token limits and reduce costs.
42+
43+
### Streaming
44+
The API supports Server-Sent Events (SSE) for streaming responses, which we use in the TUI for real-time updates.

docs/docusaurus.config.ts

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -47,21 +47,6 @@ const config: Config = {
4747
editUrl:
4848
'https://github.com/nathfavour/vibeauracle/tree/master/docs/',
4949
},
50-
blog: {
51-
showReadingTime: true,
52-
feedOptions: {
53-
type: ['rss', 'atom'],
54-
xslt: true,
55-
},
56-
// Please change this to your repo.
57-
// Remove this to remove the "edit this page" links.
58-
editUrl:
59-
'https://github.com/nathfavour/vibeauracle/tree/master/docs/',
60-
// Useful options to enforce blogging best practices
61-
onInlineTags: 'warn',
62-
onInlineAuthors: 'warn',
63-
onUntruncatedBlogPosts: 'warn',
64-
},
6550
theme: {
6651
customCss: './src/css/custom.css',
6752
},
@@ -88,7 +73,6 @@ const config: Config = {
8873
position: 'left',
8974
label: 'Documentation',
9075
},
91-
{ to: '/blog', label: 'Blog', position: 'left' },
9276
{
9377
href: 'https://github.com/nathfavour/vibeauracle',
9478
label: 'GitHub',
@@ -128,10 +112,6 @@ const config: Config = {
128112
{
129113
title: 'More',
130114
items: [
131-
{
132-
label: 'Blog',
133-
to: '/blog',
134-
},
135115
{
136116
label: 'GitHub',
137117
href: 'https://github.com/nathfavour/vibeauracle',

0 commit comments

Comments
 (0)