🔮 Perplexity AI Integration

Perplexity unterstützt aktuell keine nativen MCP-Server, aber es gibt mehrere Wege, um CompText trotzdem zu nutzen:


✅ Methode 1: REST API + Custom Instructions (Empfohlen)

Schritt 1: REST API starten

# CompText REST API starten
cd comptext-mcp
python rest_api_[wrapper.py](<http://wrapper.py>)

# Server läuft auf [<http://localhost:8000>](<http://localhost:8000>)

Schritt 2: ngrok für Public URL (optional)

Falls Perplexity nicht auf localhost zugreifen kann:

# ngrok installieren (einmalig)
brew install ngrok  # macOS
# oder von [<https://ngrok.com/download>](<https://ngrok.com/download>)

# Tunnel erstellen
ngrok http 8000

# Du erhältst eine URL wie:
# [<https://abc123.ngrok.io>](<https://abc123.ngrok.io>)

Schritt 3: Custom Instructions in Perplexity

Füge in deinen Perplexity Thread Instructions oder im Chat:

Du hast Zugriff auf eine CompText Codex API unter:
BASE_URL: [<https://abc123.ngrok.io>](<https://abc123.ngrok.io>)

Verfügbare Endpoints:

1. GET /api/modules - Liste alle CompText Module
2. GET /api/modules/{module} - Lade Modul (A-M)
3. GET /api/search?query=X - Suche im Codex
4. GET /api/command/{page_id} - Lade Befehl-Details
5. GET /api/tags/{tag} - Filter nach Tag
6. GET /api/statistics - Zeige Statistiken

Beispiel-Nutzung:
Wenn ich nach "Code-Generierung" frage, rufe:
GET [<https://abc123.ngrok.io/api/search?query=code>](<https://abc123.ngrok.io/api/search?query=code>)

Wenn ich nach "Modul B" frage, rufe:
GET [<https://abc123.ngrok.io/api/modules/B>](<https://abc123.ngrok.io/api/modules/B>)

Nutze diese API proaktiv, wenn ich nach CompText-Befehlen frage.

Schritt 4: In Perplexity nutzen

User: "Zeige mir alle CompText Module"

Perplexity: [Ruft GET [<https://abc123.ngrok.io/api/modules>](<https://abc123.ngrok.io/api/modules>) auf]
"Hier sind alle CompText Module:
- Modul A: Allgemeine Befehle (15 Einträge)
- Modul B: Programmierung (23 Einträge)
..."

✅ Methode 2: Perplexity API + Custom Integration

Erstelle ein Middleware-Script, das Perplexity API mit CompText verbindet:

perplexity_bridge.py

"""Bridge zwischen Perplexity API und CompText MCP"""
import requests
import os
from openai import OpenAI

# Perplexity API Client
client = OpenAI(
    api_key=os.getenv("PERPLEXITY_API_KEY"),
    base_url="[<https://api.perplexity.ai>](<https://api.perplexity.ai>)"
)

# CompText API Base URL
COMPTEXT_API = "[<http://localhost:8000>](<http://localhost:8000>)"

def get_comptext_data(endpoint):
    """Hole Daten von CompText API"""
    response = requests.get(f"{COMPTEXT_API}{endpoint}")
    return response.json()

def chat_with_comptext(user_message):
    """Chat mit Perplexity + CompText Context"""
    
    # Erkenne, ob CompText-Anfrage
    if "module" in user_message.lower() or "comptext" in user_message.lower():
        # Hole relevante CompText Daten
        if "modul b" in user_message.lower():
            data = get_comptext_data("/api/modules/B")
            context = f"CompText Modul B: {data}"
        elif "search" in user_message.lower():
            query = user_message.split("search")[-1].strip()
            data = get_comptext_data(f"/api/search?query={query}")
            context = f"CompText Search Results: {data}"
        else:
            data = get_comptext_data("/api/modules")
            context = f"CompText Modules: {data}"
    else:
        context = ""
    
    # Chat mit Perplexity
    messages = [
        {"role": "system", "content": f"Du bist ein Experte für CompText DSL. {context}"},
        {"role": "user", "content": user_message}
    ]
    
    response = [client.chat](<http://client.chat>).completions.create(
        model="llama-3.1-sonar-large-128k-online",
        messages=messages
    )
    
    return response.choices[0].message.content

# Verwendung
if __name__ == "__main__":
    while True:
        user_input = input("\\nYou: ")
        if user_input.lower() in ['quit', 'exit']:
            break
        
        response = chat_with_comptext(user_input)
        print(f"\\nPerplexity: {response}")

Verwendung