ChatGPT peut-il être votre compagnon de code BFF ?
L'intrigue . Eric Clapton a dit un jour "Le bon blues ne prend que 3 choses - un (wo)man, une guitare et un coucher de soleil". J'ai toujours cru à cette théorie trinitaire sur la programmation également - "Une bonne programmation ne prend que 3 choses - un (hu)man, Emacs et un compagnon de code de niveau humain". Cette trinité est comme une programmation en binôme extrême avec une personne dans le nouveau langage de programmation le plus en vogue... l'anglais. La personne dans ce cas étant un programme.
Aujourd'hui, nous sommes loin de cette vision de la programmation - nous avons besoin de Github, Gists, W3Cschool, de terrains de jeux linguistiques, de répliques, de StackOverflow, de divers IDE avec des courbes d'apprentissage et du bling UX superflu, etc.
La question est alors - est-ce que chatGPT (ou synonyme) est assez bon pour être votre seul compagnon de code (votre BFF de programmation extrême) ?
Si non, que remplace-t-il déjà, et que reste-t-il à venir ?
L'exercice . Ce qui m'a dissuadé de ma résolution du nouvel an de ne pas ajouter de «bruit» à propos de chatGPT, c'est cette démangeaison que je devais éliminer. Et il s'est avéré que la solution a a) le niveau de difficulté d'une affectation CS de première année et b) avec un certain nombre de bits que je sais que je n'étais pas familier ou rouillé (Langchain, API de magasin de vecteurs et autres) - donc un exercice assez bon pour tester l'utilité de chatGPT par rapport à la soupe alphabétique des outils capturés ci-dessus.
Mon cas d'utilisation. Je continue à collecter des articles sur des thèmes particuliers (20 à 30 d'un coup) et je reporte leur lecture parce que je suis incapable de bloquer un bloc de temps contigu. En particulier, pendant les vacances, j'ai rassemblé un tas d'articles sur la neurostimulation pour mieux comprendre si le Neuralink de Musk changeait la donne ou commercialisait l'état de l'art connu. Avec très peu de vocabulaire Neuro à mon actif, ce travail de lecture de la liste de lecture était constamment reporté.
Ainsi, la pensée — écrire un moteur de recherche sémantique simple et un système de réponse aux questions qui fonctionne exclusivement avec mon corpus d'articles.
Une fois ce qui précède en place, je pourrais interroger les articles et les lire comme je navigue sur le Web (au coup par coup en fonction de la curiosité du moment) plutôt que comme un livre (d'une couverture à l'autre).
Solution. Vous avez besoin de quelques éléments - fractionnement simplifié des documents sur le corpus pour simplifier l'indexation, indexation moderne (FAISS ou mieux), un magasin de vecteurs pour accélérer le traitement des requêtes, puis une superposition conversationnelle au-dessus des fragments avec des références au contenu original - pour rendre le processus de requête des consommateurs intuitif. Vous pouvez le faire de plusieurs façons, mais l'une d'entre elles consiste à obtenir tous les éléments d'OpenAI et à les enchaîner avec des chaînes d'invites.
Langchain est un nouveau package qui simplifie la fusion des LLM et des magasins de documents traditionnels, ce qui en fait une bonne base pour l'écriture dudit moteur de recherche sémantique personnalisé. L'idée centrale qu'il simplifie est la notion de chaînes d'invites (considérez-le comme une version du 21e siècle d'un moteur de règles, mais où les règles fonctionnent avec les LLM). En particulier, il offre quelque chose appelé un chaînage d'invites de génération augmentée de données qui simplifie une grande partie du pipeline ci-dessous avec l'hypothèse par défaut que tous les services (fractionnement de texte, résumé, indexation, etc.) proviennent d'OpenAI. Évidemment, les interfaces en langage naturel sont gratuites, tout comme le multi-langue, tout comme la créativité de la réponse (si vous réglez la température OpenAI sur autre chose que 0).
Qu'est-ce que chatGPT a fait pour moi ?. Au lieu de lire la documentation OpenAPI et Langchain, j'ai décidé de les apprendre de la « manière socratique » en demandant simplement à chatGPT au fur et à mesure. Ses réponses sur les concepts (ainsi que sur des choses simples comme la programmation des clés openAI et l'optimisation du coût des appels openAI) étaient étonnamment convaincantes. Le code qu'il a écrit était bon à 80 pour 20, et je me suis retrouvé à ne pas aller à StackOverflow pour la bouchée rapide de choses que je connaissais mais que j'avais oubliées. Étonnamment, son intégration avec Github était médiocre et j'ai fini par parcourir le code source de Langchain pour obtenir des éclaircissements (c'est quelque chose que Microsoft corrigera en un clin d'œil avec le « nouveau contrat »). Un résumé des choses qu'il a remplacées (ou non) pour moi (dans les 15 à 20 invites chatGPT qui constituaient notre programmation en binôme) est comme ci-dessous.
Alors.. à l'échelle trinitaire. Nous ne sommes pas encore dans l'état de compagnon humain nirvana, mais nous arrivons à un état intermédiaire utile de "programmation accélérée des connaissances". Cependant, mon pari est que chatGPT (quel que soit le nom de LLM) arrivera à un point où des compagnons spécifiques au code (comme CoPilot) peuvent soit ne pas être nécessaires, soit se fondre avec chatGPT là où ils ont une personnalité humaine, qui co-développe des logiciels avec vous « en tant que personne » (et non en tant que plug-in de navigateur).
![Qu'est-ce qu'une liste liée, de toute façon? [Partie 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































