Utiliser Ollama depuis son téléphone avec Pacerelle

Lire le guideConsulter la documentation

Votre modèle répond déjà sur votre ordinateur. Vous voulez lui poser une question depuis votre téléphone, même hors du Wi-Fi de la maison. Pacerelle peut relier les deux : un petit agent Python reçoit le message, interroge Ollama sur la machine et renvoie la réponse dans votre conversation.

Le résultat et les prérequis

Ce premier agent traite une question textuelle à la fois. Il ne mémorise pas la conversation, ne lit pas vos fichiers et ne commande pas votre ordinateur. C'est un point de départ facile à vérifier avant d'ajouter des outils.

  • Installez Ollama et vérifiez qu'un modèle répond avec ollama run NOM_DU_MODELE. Choisissez un modèle qui tient réellement sur votre machine.
  • Utilisez Python 3.12, requis par les roues de l'alpha actuelle du SDK Pacerelle, puis installez pacerelle et httpx.
  • Dans Pacerelle, créez un agent et copiez ses variables PACERELLE_AGENT_ID et PACERELLE_AGENT_TOKEN dans l'environnement du terminal. Gardez le jeton hors du code et de Git.
  • Définissez OLLAMA_MODEL avec le nom exact visible dans ollama list. Consultez le démarrage rapide pour créer votre première connexion.
bash
python -m pip install --pre pacerelle httpx

Relier les deux services

Enregistrez cet exemple dans ollama_phone.py. Le modèle reste sur votre machine si vous choisissez un modèle local ; un tag cloud fait exécuter l'inférence chez son fournisseur. L'adresse de boucle locale ci-dessous n'est pas à publier sur votre routeur.

python
import asyncio
import os
import httpx
from pacerelle import AgentGatewayClient

client = AgentGatewayClient(
    token=os.environ["PACERELLE_AGENT_TOKEN"],
    agent_id=os.environ["PACERELLE_AGENT_ID"],
    base_url="https://api.pacerelle.com",
    e2ee=True,
    store_root=".pacerelle-ollama",
)
model = os.environ["OLLAMA_MODEL"]

async def handle(message, agent):
    if message.widget_response or not message.text:
        return
    if len(message.text) > 8000:
        await agent.reply(message, "Please send fewer than 8,000 characters.")
        return
    try:
        async with httpx.AsyncClient(timeout=180) as http:
            response = await http.post(
                "http://127.0.0.1:11434/api/generate",
                json={"model": model, "prompt": message.text, "stream": False},
            )
            response.raise_for_status()
            answer = response.json()["response"].strip()
    except (httpx.HTTPError, ValueError, KeyError):
        await agent.reply(message, "Ollama did not return a usable answer. Check the local service and model.")
        return
    await agent.reply(message, answer or "The model returned an empty answer.")

client.on_message(handle)
asyncio.run(client.connect())

Lancez python ollama_phone.py, puis envoyez « Explique la différence entre RAM et stockage en trois phrases ». Le paramètre stream: false demande une réponse complète à l'API Ollama. La réponse revient dans la conversation d'origine avec agent.reply.

Vérifier depuis le téléphone

D'abord, obtenez une réponse sur le même réseau. Ensuite, coupez le Wi-Fi du téléphone et refaites l'essai en réseau mobile. La réussite se constate dans la conversation : la réponse doit venir de cet agent et répondre à la nouvelle question. Un simple statut « connecté » ne suffit pas.

Arrêtez Ollama et vérifiez que le message d'erreur apparaît. Relancez-le et posez une autre question. Si rien ne revient, contrôlez successivement le processus Python, ses variables, la connexion de l'agent et le nom du modèle. Un ordinateur en veille ne peut pas calculer la réponse.

Passer du test à un usage quotidien

Gardez le même identifiant et le même dossier d'état au redémarrage, avec un seul processus par dossier. Le stockage Python contient des clés et des demandes en clair : protégez ses accès et sauvegardes. Pour un agent durable, ajoutez une supervision du processus et une reprise après déconnexion conformément au guide de production.

Cet exemple n'inclut ni file de tâches persistante ni mémoire de discussion. Si vous voulez retrouver vos notes, poursuivez avec le guide RAG. Si vous voulez simplement discuter, commencez par mesurer la qualité et le temps de réponse sur vos propres questions ; aucun débit générique ne prédit celui de votre machine.

Connecter votre premier agent

Créez l’agent, copiez sa configuration et vérifiez une première réponse avant de quitter votre ordinateur.

Suivre le démarrage rapide

Articles recommandés