cedric-8EF Engine · v10.0.0
Candy n'est pas une IA — c'est le logiciel qui fait le lien entre ton code Python et cedric-8EF. 50 personnalités spécialisées, zéro configuration. Crée des sites, apps et services dopés à l'IA en quelques lignes.
Fonctionnalités
Candy est un pont, pas une IA. Il transmet tes requêtes à cedric-8EF et te retourne les réponses — proprement, simplement.
pip install candy-ai et c'est parti.cfg.A.lang = "FR" — aussi simple que ça.stream_print() pour afficher en temps réel.candy helper ouvre la fenêtre Helper. candy -- script.cdy exécute un script candy.Sites & Applications IA
Candy n'est pas réservé aux scripts Python. C'est le moteur derrière des sites web interactifs, des applications complètes et des services en ligne entièrement dopés à l'IA. Flask, FastAPI, Django — candy s'intègre partout.
from flask import Flask, request, jsonify, Response from candy import cfg, Full, Coding, Writing, Tutor app = Flask(__name__) # Profil global pour le site cfg.web.lang = "FR" cfg.web.style = "detailed" cfg.web.max_tokens = 1500 # Route chatbot — répond à n'importe quelle question @app.route("/ask", methods=["POST"]) def ask(): data = request.get_json() question = data.get("question", "") module = data.get("module", "Full") modules = {"Full": Full, "Coding": Coding, "Writing": Writing, "Tutor": Tutor} ai = modules.get(module, Full) answer = ai.use("web").ask(question) return jsonify({"answer": answer, "module": module}) # Route streaming — SSE token par token @app.route("/stream", methods=["POST"]) def stream(): question = request.get_json().get("question") def generate(): for token in Full.use("web").stream(question): yield f"data: {token}\n\n" return Response(generate(), mimetype="text/event-stream") if __name__ == "__main__": app.run(debug=True)
Aide au code
Exemples complets pour démarrer immédiatement.
from candy import Coding # Appel simple — profil default print(Coding.ask("Write a quicksort in Python"))
from candy import cfg, Math, Writing # Profil manuel cfg.A.lang = "FR" cfg.A.max_tokens = 2000 cfg.A.style = "detailed" cfg.A.expertise = "beginner" # Ou preset en une ligne cfg.B = cfg.preset("french_beginner") print(Math.use("A").ask("Résous ∫x²sin(x)dx")) print(Writing.use("B").ask("Écris un poème"))
from candy import cfg, Writing cfg.A.lang = "FR" cfg.A.style = "casual" # Itérer token par token for token in Writing.use("A").stream("Raconte une histoire"): print(token, end="", flush=True) # Ou stream_print() — affiche directement Writing.use("A").stream_print("Raconte une histoire")
from candy import cfg, Coding cfg.A.lang = "FR" cfg.A.style = "detailed" # Session qui mémorise le contexte session = Coding.chat(profile="A") print(session.say("Explique les décorateurs Python")) print(session.say("Donne un exemple avec une classe")) print(session.say("Et avec des arguments ?")) session.save("chat.json") session.show_history()
from candy import cfg, Coding cfg.A.lang = "FR" cfg.A.max_tokens = 300 cfg.A.style = "concise" questions = [ "C'est quoi une liste ?", "C'est quoi un dict ?", "C'est quoi un générateur ?", ] reponses = Coding.use("A").batch(questions) for q, r in zip(questions, reponses): print(f"Q: {q}\nR: {r}\n")
from candy import cfg, Writing, Planner cfg.p.lang = "FR" cfg.p.max_tokens = 4096 cfg.p.style = "detailed" cfg.p.output_format = "markdown" plan = Planner.use("p").ask( "Plan 20 chapitres sur la WW2. Liste numérotée.") chapitres = [l.strip() for l in plan.split("\n") if l.strip() and l.strip()[0].isdigit()] texte = "# La Seconde Guerre Mondiale\n\n" for i, titre in enumerate(chapitres[:20], 1): contenu = Writing.use("p").ask( f"Chapitre {i}: {titre}. 400 mots en français.") texte += f"## Ch. {i} — {titre}\n\n{contenu}\n\n---\n\n" with open("livre.md", "w", encoding="utf-8") as f: f.write(texte)
from candy import Helper Helper.list() # voir les templates # Générer du code candy code = Helper.write("livre", sujet="Napoléon", lang="FR") print(code) # Générer ET exécuter Helper.run("chatbot", lang="FR", module="Full") Helper.run("traduction", texte="Bonjour", langues=["ES","DE","JA"])
# Terminal — ouvre la fenêtre Helper $ candy helper # Exécuter un fichier .cdy $ candy -- mon_script.cdy # Contenu d'un fichier .cdy from candy import cfg, Coding cfg.default.lang = "FR" cfg.default.style = "concise" print(Coding.ask("C'est quoi un générateur ?"))
Personnalités
Clique sur une personnalité pour en savoir plus.
Versions
Toutes les versions depuis le lancement.
candy helper et candy -- script.cdyinstall_candy.bat) avec PATH automatiquewrite(), run(), preview(), explain()preview() avec affichage numéroté et coloréConversationbatch() et stream_print()coder, teacher, academic…)ping(), is_online(), cfg.A.reset()cfg.A, cfg.rapide….use("profil") — profil default sans .use()