fr en

Définir et utiliser les CONTEXTES avec BOB sur IBMi

Pourquoi utiliser des contextes avec BOB ?

Lorsque l’on formule une demande sous BOB, il est fortement conseillé de donner, dans le prompt saisi, un maximum d’informations permettant à l’IA de répondre de façon plus précise et donc plus justement.

Plutôt que d’être ressaisies manuellement dans chaque prompt, ces informations peuvent être stockées dans un fichier qui définira, ainsi, un contexte particulier.
Ce contexte pourra, alors, être facilement réutilisé dans d’autres prompts.

L’objectif d’un contexte est donc :

  • de fournir des informations à l’IA pour lui permettre de mieux nous répondre.
  • de ne pas avoir à ressaisir ces informations à chaque demande.

Création d'un contexte pour BOB :

Pour créer un contexte, il suffit de créer un fichier markdown (.md) en lui donnant un nom facilement identifiable (ex: mon_contexte_IBMi.md).
Ensuite il faut saisir dans ce fichier, de préfrence de manière ordonnée, la liste des informations à fournir à l’IA.

Exemple :
Fichier : mon_contexte_IBMi.md

Contenu :

# Contexte mon_contexte_ibmi.md

# Données système
Type de système : IBMi (AS/400)
Nom du système : mon_ibmi
Version : V7R6
Architecture : POWER
CCSID par défaut : 37



# Bibliothèque des objets programmes
Nom : ma_bibliothèque_objets_pgm

Contenu :
*PGM – Programmes compilés
*MODULE – Modules ILE
*SRVPGM – Programmes de service
*FILE (PRTF) – Fichiers d’impression
*FILE (DSPF) – Fichiers d’affichage
*DTAARA – Zones de données


# Bibliothèque des objets données
Nom : ma_bibliothèque_objets_data

Contenu :
PF Fichiers physiques
LF Fichiers logiques
Tables SQL
Index SQL
Vues SQL

# Bibliothèque des sources
Nom : ma_bibliothèque_sources

Contenu : Tous les fichiers sources
QCLSRC      Sources CL et CLLE
QRPGSRC     Sources RPG
QRPGLESRC   Sources RPGLE
QDDSSRC     Sources DDS (PF, LF, DSPF, PRTF)
QSQLSRC     Sources SQL (Tables, Vues, Index)

# Langages de programmation

Langages utilisés :
CL
RPG
RPGLE
RPGLE FREEFORM

# Standards de développement
Tous les nouveaux développements doivent être réalisés en **RPGLE FREEFORM** avec accès aux données en **SQL**.
Toujours inclure les 4 champs d’audit dans chaque nouvelle table SQL :
    DATEMISEAJOUR (DTMAJ) – Timestamp de modification automatique
    USERMISEAJOUR (USRMAJ) – Utilisateur de modification automatique
    DATECREATION (DTCREAT) – Timestamp de création
    USERCREATION (USRCREAT) – Utilisateur de création

Utilisation d'un contexte dans un prompt pour BOB :

Pour utiliser un contexte dans un prompt BOB, il suffit d’inclure dans le prompt : @ + nom_du_fichier_contexte_a_utiliser.md

Par exemple :
Pour créer une nouvelle table SQL, avec les 4 champs d’audits d’écrits dans le contexte sans avoir à les décrire à nouveau il suffit d’utiliser le prompt suivant :

@/mon_contexte_ibmi.md
génère le source de la table SQL ma_table contenant les champs ID_TABLE id autogénéré, TABLE_NOM sur 10 caractères alpha, TABLE_LIBELLE sur 50 caractères alpha

Bob s’appuiera sur les informations contenues dans le fichier mon_contexte_ibmi.md et ajoutera à la table les 4 champs d’audit (DATEMISEAJOUR, USERMISEAJOUR, DATECREATION, USERCREATION) sans que cela ait été mentionné dans le prompt.

Pour aller plus loin...

Le fichier contexte donné en exemple est relativement simple et contient assez peu d’informations.
Ceci pour faciliter la compréhension de mes propos.
Mais il peut être enrichi au fur et à mesure des besoins rencontrés.

On peut y inclure, par exemple, les normes de développements utilisées pour normaliser les sources RPG, RPGLE, FREEFORM, SQL…
Ou toutes autres informations qui seraient utiles à BOB pour rendre ses actions encore plus en adéquations avec nos attentes.

On peut, bien sûr, définir plusieurs fichiers de contextes et les utiliser en fonctions de nos besoins.

Par exemple : on peut créer

  • un contexte spécifique aux documentations de type « manuel d’utilisation », incluant par exemple la description des enchainements écrans, la descriptions des options proposées et la descriptions des touches de fonctions utilisées.
  • un contexte spécifique aux documentations techniques incluant un diagramme des flux, le schéma d’appel des différents programmes., la descriptions des tables utilisées..