Vous avez toujours voulu votre propre réviseur de code alimenté par l'IA qui s'exécute entièrement sur votre ordinateur local ? Dans ce didacticiel en deux parties, nous allons construire exactement cela en utilisant ClientAI et Ollama.
Notre assistant analysera la structure du code Python, identifiera les problèmes potentiels et suggérera des améliorations, tout en gardant votre code privé et sécurisé.
Pour les documents de ClientAI, voir ici et pour Github Repo, ici.
Notre assistant d'analyse de code sera capable de :
Tout cela s'exécutera localement sur votre machine, vous offrant ainsi la puissance de la révision de code assistée par l'IA tout en préservant la confidentialité totale de votre code.
Tout d'abord, créez un nouveau répertoire pour votre projet :
mkdir local_task_planner cd local_task_planner
Installez ClientAI avec le support d'Ollama :
pip install clientai[ollama]
Assurez-vous qu'Ollama est installé sur votre système. Vous pouvez l'obtenir sur le site Web d'Ollama.
Créons maintenant le fichier dans lequel nous allons écrire le code :
touch code_analyzer.py
Et commencez par nos principales importations :
import ast import json import logging import re from dataclasses import dataclass from typing import List from clientai import ClientAI from clientai.agent import ( Agent, ToolConfig, act, observe, run, synthesize, think, ) from clientai.ollama import OllamaManager, OllamaServerConfig
Chacun de ces composants joue un rôle crucial :
Lors de l'analyse du code, nous avons besoin d'une manière claire d'organiser nos résultats. Voici comment nous structurerons nos résultats :
@dataclass class CodeAnalysisResult: """Results from code analysis.""" complexity: int functions: List[str] classes: List[str] imports: List[str] issues: List[str]
Considérez cela comme notre bulletin d'analyse du code :
Maintenant, passons au noyau proprement dit : construisons notre moteur d'analyse de code :
def analyze_python_code_original(code: str) -> CodeAnalysisResult: """Analyze Python code structure and complexity.""" try: tree = ast.parse(code) functions = [] classes = [] imports = [] complexity = 0 for node in ast.walk(tree): if isinstance(node, ast.FunctionDef): functions.append(node.name) complexity += sum( 1 for _ in ast.walk(node) if isinstance(_, (ast.If, ast.For, ast.While)) ) elif isinstance(node, ast.ClassDef): classes.append(node.name) elif isinstance(node, (ast.Import, ast.ImportFrom)): for name in node.names: imports.append(name.name) return CodeAnalysisResult( complexity=complexity, functions=functions, classes=classes, imports=imports, issues=[], ) except Exception as e: return CodeAnalysisResult( complexity=0, functions=[], classes=[], imports=[], issues=[str(e)] )
Cette fonction est comme notre détective de code. Il :
Un bon code ne consiste pas seulement à fonctionner correctement : il doit être lisible et maintenable. Voici notre vérificateur de style :
mkdir local_task_planner cd local_task_planner
Notre vérificateur de style se concentre sur deux aspects clés :
La documentation est cruciale pour un code maintenable. Voici notre générateur de documentation :
pip install clientai[ollama]
Cette aide :
Pour préparer nos outils à l'intégration avec le système d'IA, nous devons les envelopper dans des formats compatibles JSON :
touch code_analyzer.py
Ces wrappers ajoutent la validation des entrées, la sérialisation JSON et la gestion des erreurs pour rendre notre assistant plus résistant aux erreurs.
Dans cet article, nous avons configuré notre environnement, structuré nos résultats et construit les fonctions que nous utiliserons comme outils pour notre agent. Dans la partie suivante, nous allons créer notre assistant IA, enregistrer ces outils, créer une interface de ligne de commande et voir cet assistant en action.
Votre prochaine étape est la partie 2 : Création de l'assistant et de l'interface de ligne de commande.
Pour en savoir plus sur ClientAI, accédez à la documentation.
Si vous avez des questions, souhaitez discuter de sujets liés à la technologie ou partager vos commentaires, n'hésitez pas à me contacter sur les réseaux sociaux :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!