Skip to main content

Client Python pour Cédric — IA conversationnelle avec 500 requêtes/jour gratuites par IP et file d'attente automatique

Project description

cedric-ai

cedric-ai est une bibliothèque Python qui te permet d'interagir avec Cédric, une intelligence artificielle conversationnelle rapide, sans filtre et disponible à la demande.

Cédric répond à tes questions, discute de n'importe quel sujet, génère du texte, et s'adapte à n'importe quelle personnalité que tu lui donnes. La lib gère automatiquement les cas où le serveur est temporairement hors ligne grâce à un système de file d'attente persistante — tes requêtes ne sont jamais perdues.


Installation

pip install cedric-ai

Aucune dépendance externe sauf requests. Compatible Python 3.8+.


Accès & Limites

  • Aucun token requis — l'accès est identifié par ton adresse IP automatiquement
  • 500 requêtes gratuites par jour par adresse IP
  • Au delà du quota, les requêtes sont mises en file et traitées le lendemain
  • Aucune inscription, aucune clé API à gérer

Démarrage rapide

from cedric_ai import CedricAI

ai = CedricAI()
reponse = ai.ask("C'est quoi Python ?")
print(reponse)

Fonctionnalités

  • Requêtes directes — pose une question, reçois une réponse immédiatement
  • File d'attente automatique — si le serveur est éteint ou le quota atteint, la requête attend et s'exécute automatiquement
  • Persistance — la file est sauvegardée sur disque, même si ton script redémarre les jobs reprennent
  • Callbacks — sois notifié dès qu'une réponse arrive
  • Personnalité personnalisable — donne un contexte ou une personnalité à Cédric via le paramètre system
  • Quota automatique — 500 requêtes/jour par IP, remis à zéro chaque nuit à minuit

Guide complet

Requête directe

La façon la plus simple. Bloquant — attend la réponse avant de continuer.

from cedric_ai import CedricAI

ai = CedricAI()

reponse = ai.ask("Explique moi la gravité en deux phrases")
print(reponse)

Si le serveur est temporairement indisponible, la lib attend automatiquement jusqu'à max_wait secondes (défaut 10 minutes) puis réessaie.

# Attendre max 5 minutes que le serveur revienne
reponse = ai.ask("Bonjour !", max_wait=300)

# Ne pas attendre — lève une erreur si hors ligne
reponse = ai.ask("Bonjour !", wait_if_offline=False)

Requête asynchrone avec file d'attente

Idéal quand tu veux envoyer une requête sans bloquer ton programme, ou quand le serveur peut être indisponible.

from cedric_ai import CedricAI

ai = CedricAI()

# Ajoute la requête en file — retourne immédiatement un job_id
job_id = ai.ask_async("Écris moi un poème sur la pluie")
print(f"Job créé : {job_id}")

# Récupère le résultat plus tard (bloquant, max 10 min)
result = ai.wait_for_result(job_id, timeout=600)
print(result)

Vérifier le résultat sans bloquer

job_id = ai.ask_async("Raconte moi une blague")

# Vérification non bloquante
result = ai.get_result(job_id)
if result is None:
    print("Pas encore prêt...")
else:
    print(result)

Callback — être notifié quand la réponse arrive

def quand_ca_repond(job_id, reponse):
    print(f"[Job {job_id}] Réponse reçue :")
    print(reponse)

job_id = ai.ask_async(
    "Donne moi 5 idées de projets Python",
    callback=quand_ca_repond
)

# Ton programme continue de tourner...
import time
time.sleep(60)  # la réponse arrivera via le callback

Personnalité personnalisée

Tu peux donner un contexte ou une personnalité à Cédric via le paramètre system.

ASSISTANT_RH = """
Tu es un assistant RH professionnel. Tu réponds de manière formelle,
tu aides à rédiger des offres d'emploi, des contrats, et tu donnes
des conseils en droit du travail français.
"""

reponse = ai.ask(
    "Rédige une offre d'emploi pour un développeur Python senior",
    system=ASSISTANT_RH
)
print(reponse)
PROF_MATHS = "Tu es un professeur de mathématiques du lycée. Tu expliques clairement avec des exemples concrets."

reponse = ai.ask("Comment résoudre une équation du second degré ?", system=PROF_MATHS)

Statut de la file d'attente

status = ai.queue_status()
print(status)
# {
#   "online": True,
#   "pending": 2,
#   "done": 8,
#   "errors": 0,
#   "total": 10
# }

Nettoyer les jobs terminés

ai.clear_done()  # supprime les jobs avec status "done" du fichier de file

Vérifier si le serveur est disponible

if ai.is_online():
    print("Serveur disponible ✅")
else:
    print("Serveur hors ligne ❌")

Référence des paramètres

CedricAI(...)

Paramètre Type Défaut Description
queue_mode bool True Active la file d'attente automatique si serveur hors ligne
queue_file str "cedric_queue.json" Chemin du fichier de persistance de la file
retry_interval int 30 Secondes entre chaque tentative de reconnexion
timeout int 120 Timeout maximum par requête en secondes

ask(prompt, system, wait_if_offline, max_wait)

Paramètre Type Défaut Description
prompt str Ta question ou instruction
system str None Contexte / personnalité donnée à Cédric
wait_if_offline bool True Attend que le serveur soit disponible si True
max_wait int 600 Secondes max d'attente si serveur indisponible

ask_async(prompt, system, callback)

Paramètre Type Défaut Description
prompt str Ta question ou instruction
system str None Contexte / personnalité
callback callable None Fonction appelée avec (job_id, reponse) quand c'est prêt

wait_for_result(job_id, timeout)

Paramètre Type Défaut Description
job_id str L'ID retourné par ask_async()
timeout int 600 Secondes max avant TimeoutError

Gestion des erreurs

from cedric_ai import CedricAI

ai = CedricAI()

try:
    reponse = ai.ask("Bonjour", wait_if_offline=False)
except ConnectionError:
    print("Serveur indisponible")
except PermissionError:
    print("Quota journalier atteint (500 requêtes/jour)")
except TimeoutError:
    print("Timeout dépassé")
except Exception as e:
    print(f"Erreur inattendue : {e}")

Exemple complet — chatbot en ligne de commande

from cedric_ai import CedricAI

ai = CedricAI(retry_interval=15)

print(f"Serveur en ligne : {ai.is_online()}")
print("Tape 'exit' pour quitter\n")

while True:
    question = input("Toi : ").strip()
    if question.lower() == "exit":
        break
    if not question:
        continue
    try:
        reponse = ai.ask(question, max_wait=120)
        print(f"Cédric : {reponse}\n")
    except PermissionError:
        print("⚠️ Quota de 500 requêtes/jour atteint\n")
    except TimeoutError:
        print("⏱️ Serveur pas disponible, réessaie plus tard\n")
    except Exception as e:
        print(f"❌ Erreur : {e}\n")

Licence

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cedric_ai-5.0.0.tar.gz (5.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cedric_ai-5.0.0-py3-none-any.whl (4.9 kB view details)

Uploaded Python 3

File details

Details for the file cedric_ai-5.0.0.tar.gz.

File metadata

  • Download URL: cedric_ai-5.0.0.tar.gz
  • Upload date:
  • Size: 5.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cedric_ai-5.0.0.tar.gz
Algorithm Hash digest
SHA256 d2951faa7a3367ae2ac3863c4d06467d099a0cf249af387378d5b0d9af20c979
MD5 47aa99a7493bbadfc70340035a73e112
BLAKE2b-256 979aebf949f4c37c7f8fe59ff48e0256b5ac4774768daaa8c3f771487b344999

See more details on using hashes here.

File details

Details for the file cedric_ai-5.0.0-py3-none-any.whl.

File metadata

  • Download URL: cedric_ai-5.0.0-py3-none-any.whl
  • Upload date:
  • Size: 4.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cedric_ai-5.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d3ebbf1e803364974437f5420059690fb887c1f36baa59794cd140d21a364974
MD5 cf8660bfbd1b5b0e80a648f454d63ffc
BLAKE2b-256 6b516319a82508a3788cdf38522dca64dbd26779d3ed68f9189235e9729ec1ea

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page