On va parler d'un sujet qui nous embête tous et qui fait que l'on n'utilise pas assez la GenAI pour coder : les hallucinations de code.
On l'a tous vécu : on demande à un LLM de nous aider sur des fonctionnalités, et il nous sort des fonctions complètement inventées, des packages qui n'existent pas, ou des méthodes qui ont été dépréciées il y a deux ans...
1. Le cauchemar du code halluciné
Ce problème est doublé quand on touche à nos librairies spécifiques. On parle de packages niche comme dataikuapi, snowflake-snowpark-ml (c'était mon cas et vous n'imaginez pas mon niveau de frustration). La qualité du code généré par ce LLM sur les librairies spécialisées est très pauvre.
Si on ajoute à ça les erreurs liées aux versions, ça devient insoluble. In fine, on arrête d'utiliser ces LLM et on revient à notre premier amour, Stackoverflow, qui ne nous a jamais trahi, lui.
2. La solution : DeepWiki, l'anti-hallucination
Les LLM hallucinent parce qu'ils manquent de contexte précis et à jour sur notre codebase. C'est là que DeepWiki entre en scène. Son objectif est simple : transformer n'importe quel dépôt de code (GitHub, GitLab, etc.) en une source de vérité fiable pour la GenAI, grâce au RAG.
Alors comment ça marche ? Attendez, on y arrive justement !
- Indexation de votre code
- Récupération du Contexte : Quand vous posez une question technique, le système de RAG va chercher les chunks de code les plus similaires dans la base FAISS.
- Génération Contextualisée : Au lieu de commencer à halluciner une nième méthode de suite, le LLM reçoit votre question et le code issu du github indexé et finalement, récupéré.
Démonstration
Et pour vous, je l'ai testé ! (Je dois avouer c'était surtout pour moi, mais bon on fera comme si...)
Alors, visuellement, ce n’est déjà pas trop mal : ça affiche les codes qui ont servi à répondre à la question posée et en prime, ça affiche la réponse en streaming (qui fait échouer complètement l'affichage le temps de la génération de la réponse d'ailleurs, mais on repassera).
Si votre repo n'a pas encore été indexé, il vous suffit de le renseigner à l'outil qui s'empressera de l'indexer et vous enverra un email une fois l'indexation finie.
Prenez par exemple ce repo code que j'ai indexé : https://deepwiki.com/dataiku/dataiku-api-client-python
On arrive sur cette interface qui est la documentation du projet en question, avec graphiques, explications etc... ça s'arrêterait là que ce serait déjà fou !

Mais l'histoire devient plus folle encore quand on pose une question :

Essayez la même chose dans d'autres solutions et vous n'aurez pas ce que vous voulez.
Vous l'aurez compris, c'est un véritable « game changer » !


