Star nous sur github! Rejoignez-nous sur Discord.
Chidori est un orchestrateur open source, l'exécution et IDE pour la construction de logiciels en symbiose avec des outils d'IA modernes. Il est particulièrement adapté à la construction d'agents d'IA en fournissant des solutions aux problèmes suivants:
Lorsque vous utilisez Chidori, vous aurez du code avec Python ou JavaScript, nous fournissons une couche pour interfaçage avec les complexités des modèles AI dans les flux de travail de longue date. Nous avons évité la nécessité de déclarer une nouvelle langue ou SDK afin de fournir ces capacités afin que vous puissiez tirer parti des modèles logiciels que vous connaissez déjà.
Caractéristiques:
Chidori est disponible sur Crates.io et peut être installé à l'aide de la cargaison. Notre point d'entrée attendu pour le développement de prototypes est chidori-debugger
qui enveloppe notre exécution dans une interface visuelle utile.
# Install the rust toolchain and the nightly channel
curl --proto ' =https ' --tlsv1.2 -sSf https://sh.rustup.rs | sh
rustup toolchain install nightly
# Required for building dependencies
xcode-select --install
# These dependencies are necessary for a successful build
brew install cmake
# We are investigating if this is necessary or can be removed
brew install [email protected]
# Chidori uses uv for handling python dependencies
brew install uv
# We depend on features only supported by nightly at the moment
cargo +nightly install chidori-debugger --locked
Si vous préférez utiliser un interprète Python différent, vous pouvez définir pyo3_python = python3.12 (ou quelle que soit la version> 3.7) lors de votre installation pour changer qui est lié.
Les interactions de Chidori avec LLMS par défaut par défaut http: // localhost: 4000 pour s'accrocher au proxy de Litellm. Si vous souhaitez tirer parti de GPT-3.5-Turbo, le fichier de configuration inclus le prend en charge. Vous devrez installer pip install litellm[proxy]
afin d'exécuter ce qui est ci-dessous:
export OPENAI_API_KEY=...
uv pip install " litellm[proxy] "
uv run litellm --config ./litellm_config.yaml
L'exemple suivant montre comment construire un agent simple qui récupère les meilleures histoires de Hacker News et appelez l'API OpenAI pour filtrer les lancements liés à l'IA, puis formater ces données dans Markdown.
Les agents Chidori peuvent être un seul fichier ou une collection de fichiers structurés comme un projet de type dactylographié ou python typique. L'exemple suivant est un agent de fichier unique. Considérez cela similaire à quelque chose comme un ordinateur portable Jupyter / Ipython représenté comme un fichier Markdown.
`` `javascript (load_hacker_news) const axios = require ('https://deno.land/x/axiod/mod.ts'); const hn_url_top_stories = "https://hacker-news.firebaseio.com/v0/topstories.json"; fonction fetchstory (id) { return axios.get (`https://hacker-news.firebaseio.com/v0/item/$ {id} .json? print = pretty`) .Then (Response => Response.data); } fonction async fetchhn () { const stories = attendre axios.get (hn_url_top_stories); const storyids = histoires.data; // seulement les 30 premiers const tasks = storyIdS.slice (0, 30) .map (id => fetchStory (id)); Retour Promise.Tous (tâches) .Then (histoires => { return stories.map (story => { const {title, url, score} = story; return {title, url, score}; }); }); } `` ' Invite "interprét_the_group" `` `invite (interprét_the_group) Basé sur la liste suivante des threads Hackernews, filtrez cette liste pour les lancements uniquement de Nouveaux projets d'IA: {{fetched_articles}} `` ' Invite "format_and_rank" `` `invite (format_and_rank) Format cette liste de nouveaux projets d'IA dans Markdown, classant le plus Projets intéressants du moins intéressant au moins. {{interprét_the_group}} `` ' Utilisation d'une cellule Python comme point d'entrée, démontrant l'exécution inter-langage: `` Python articles = attendre fetchhn () format_and_rank (articles = articles) `` '
À la base, Chidori apporte un temps d'exécution réactif qui orchestre les interactions entre différents agents et leurs composants. Chidori accepte le code Python ou JavaScript arbitraire, prenant en charge le courtage et l'exécution de celui-ci pour permettre des interruptions et une réactivité. Cela vous permet d'obtenir les avantages de ces comportements d'exécution tout en tirant parti des modèles que vous connaissez déjà.
Chidori assure une surveillance et une observabilité complètes de vos agents. Nous enregistrons toutes les entrées et sorties émises par les fonctions tout au long de l'exécution de votre agent, nous permettant d'expliquer précisément ce qui a conduit à quoi, améliorant votre expérience de débogage et votre compréhension du comportement de production du système.
Avec Chidori, vous pouvez prendre des instantanés de votre système et explorer différents résultats possibles à partir de ce point (branchement), ou rembobiner le système à un état précédent (voyage dans le temps). Cette fonctionnalité améliore la gestion des erreurs, le débogage et la robustesse du système en offrant des voies et des bricolages alternatifs.
Chidori est livré avec une prise en charge de première classe pour l'interprétation du code pour Python et JavaScript. Vous pouvez exécuter du code directement dans votre système, en fournissant un démarrage rapide, une facilité d'utilisation et une exécution sécurisée. Nous travaillons continuellement sur des garanties supplémentaires contre l'exécution du code non fiable, avec un support environnemental conteneurisé à venir bientôt.
Avec notre graphique d'exécution, la préservation de l'État et les outils de débogage - Chidori est un environnement exceptionnel pour générer du code lors de l'évaluation de votre agent. Vous pouvez l'utiliser pour tirer parti des LLM pour obtenir un comportement plus généralisé et faire évoluer vos agents au fil du temps.
Il s'agit d'une première version open source et nous recherchons des collaborateurs de la communauté. Un bon point de départ serait de rejoindre notre discorde!
Notre cadre est inspiré par le travail de beaucoup d'autres, notamment:
Chidori est sous la licence du MIT. Voir la licence pour plus d'informations.
Veuillez jouer le dépôt GitHub et rejoindre notre discorde!