Bienvenue au troisième et dernier de nos articles consacrés au développement d'applications RAG basées sur des modèles LLM. Dans ce dernier article, nous examinerons comment, dans le cadre de notre petit projet d'exemple, on peut trouver le contexte le plus approprié pour la question que l'on veut envoyer à notre modèle LLM et, pour ce faire, nous utiliserons la fonctionnalité de recherche vectorielle incluse dans IRIS.
Résumé : si vous concaténez des noms de fichiers dans /STDOUT et /STDERR dans un appel $zf(-100), mettez-les entre guillemets.
J'ai rencontré une erreur <ILLEGAL VALUE> qui m'a d'abord déconcerté. Cela faisait partie d'un test unitaire qui fonctionnait parfaitement bien sous Windows, mais lorsque CI s'exécutait sur Docker, il échouait :
Set outFile = ##class(%Library.File).TempFilename()
Set outDir = ##class(%Library.File).NormalizeDirectory(##class(%Library.File).TempFilename()_"dir-out")
Do##class(%Library.File).CreateDirectoryChain(outDir)
Do$$$AssertEquals($zf(-100,"/STDOUT="_outFile_"/STDERR="_outFile,"tar","-xvf",tempDir_".tgz","-C",outDir)Le problème, qui semble douloureusement évident une fois que vous connaissez la réponse, est que sous Linux outFile contient des barres obliques, donc elles sont interprétées comme des indicateurs de mot-clé pour $zf(-100) et bien sûr ne sont pas valides. L'erreur <ILLEGAL VALUE>
est en fait utile ici, et la solution est de mettre les noms de fichiers entre guillemets :
Set outFile = ##class(%Library.File).TempFilename()
Set outDir = ##class(%Library.File).NormalizeDirectory(##class(%Library.File).TempFilename()_"dir-out")
Do##class(%Library.File).CreateDirectoryChain(outDir)
Do$$$AssertEquals($zf(-100,"/STDOUT="""_outFile_"""/STDERR="""_outFile_"""","tar","-xvf",tempDir_".tgz","-C",outDir)Nous poursuivons cette série d'articles sur les applications LLM et RAG et dans cet article nous traiterons de la partie encadrée en rouge du diagramme ci-dessous:
Lors de la création d'une application RAG, il est tout aussi important de choisir un modèle LLM qui réponde à vos besoins (formation dans le domaine correspondant, coût, rapidité, etc.) que de définir clairement le contexte que vous souhaitez lui fournir. Commençons par définir le terme afin d'être clair sur ce que nous entendons par contexte.
Qu'est-ce que le contexte?
L'année dernière, vous avez probablement beaucoup entendu parler du LLM ( Large Language Model) et du développement associé des applications RAG ( Retrieval Augmented Generation). Dans cette série d'articles, nous expliquerons les bases de chaque terme utilisé et nous verrons comment développer une application RAG simple.
Qu'est-ce qu'un LLM?
– 9 nouvelles annonces
– 1 nouvelle question
✓ Nouveaux membres 5 ayant rejoint l'octobre
✓ Publications 1,042 publiées depuis le début
✓ Membres 155 ayant rejoint depuis le début
L'utilisation traditionnelle d'une production IRIS consiste, pour un adaptateur entrant, à recevoir des données d'une source externe, à envoyer ces données à un service IRIS, puis à faire en sorte que ce service envoie ces données par l'intermédiaire de la production.
Cependant, grâce à un adaptateur entrant personnalisé, nous pouvons faire en sorte qu'une production IRIS soit plus performante. Nous pouvons utiliser une production IRIS pour traiter les données de notre propre base de données sans aucun déclencheur externe.
Les fonctions d'agrégation définies par l'utilisateur sont prises en charge dans IRIS depuis 2021.1.0. J'avais souhaité une étoile pour celle-ci il y a des années avant de trouver un moyen secret et astucieux de remplacer MAX et MIN dans un type de données personnalisé, mais je n'ai pas eu l'occasion d'en essayer un jusqu'à aujourd'hui. J'ai pensé que c'était une expérience/un exemple intéressant - la question de savoir comment obtenir une médiane dans IRIS SQL s'est déjà posée une fois - donc je la partage ici sans trop de commentaires supplémentaires.
Dans le paysage actuel des données, les activités commerciales sont confrontées à différents défis. L'un d'entre eux consiste à réaliser des analyses à partir d'une couche de données unifiée et harmonisée, accessible à tous les utilisateurs. Une couche capable de fournir les mêmes réponses aux mêmes questions, indépendamment du dialecte ou de l'outil utilisé. La plate-forme de données InterSystems IRIS répond à cette question en ajoutant la solution 'Adaptive Analytics' (Analyse adaptative) qui peut fournir cette couche sémantique unifiée. Il y a beaucoup d'articles dans DevCommunity sur
Vous ne le réalisez peut-être pas, mais votre compte de connexion InterSystems peut être utilisé pour accéder à un très large éventail de services InterSystems pour vous aider à apprendre et à utiliser Intersystems IRIS et d'autres technologies InterSystems plus efficacement. Poursuivez votre lecture pour en savoir plus sur la manière de découvrir de nouvelles connaissances techniques et de nouveaux outils grâce à votre compte de connexion InterSystems. Après votre lecture, veuillez participer au sondage en bas de page, afin que nous puissions voir dans quelle mesure cet article vous a été
Bonjour,
Nous avons fréquemment le bouton "Mettre à jour" qui s'active au lancement des taches planifié de nos flux.
Ceci empêche le flux de ce lancé à l'heure planifiée. Voir image ci-dessous
Quelqu'un a une idée d'où vient ce comportement ? Comment le corriger ?
Merci d'avance pour votre aide,
Salut les Développeurs !
Nous avons le plaisir de vous inviter à participer au Hospitals on FHIR User Day, un événement passionnant dédié à l'interopérabilité des systèmes de santé.
📅 Dates: 25 - 26 novembre, 2024
📌 Lieu : Bluepoint Conference Centre Brussels, Blvd Auguste Reyers 80, 1030 Brussels

Bonjour les Développeurs !
Nous avons de nouveaux articles super intéressants à lire grâce aux merveilleux participants du Concours d'Articles Techniques InterSystems !

Et maintenant, il est temps d'annoncer les gagnants !
Bonjour la Communauté,
Nous sommes ravis de vous présenter une toute nouvelle façon de mettre en valeur votre créativité et vos compétences ! Cette fois, nous vous invitons à participer à notre tout premier défi vidéo :
📹 Défi InterSystems Tech Video 📹
Envoyez une vidéo sur n'importe quel sujet lié aux produits ou services InterSystems IRIS du 21 octobre au 10 novembre 2024.
🎁 Des cadeaux pour tout le monde + des prix principaux !
.jpg)
Motivé par les commentaires personnels de @Edilson Eberle Carvalho et par
une excellente présentation de @Michael Braam concernant la recherche vectorielle,
j'aimerais partager mon approche personnelle des vecteurs.
Problèmes de chaînes
J'utilise Python pour accéder aux bases de données IRIS avec JDBC (ou ODBC). Je veux récupérer les données dans pandas dataframe pour manipuler les données et créer des graphiques à partir de celles-ci. Lors de l'utilisation de JDBC, j'ai rencontré un problème avec la gestion des chaînes. Cet article est destiné à aider les personnes qui ont les mêmes problèmes. S'il existe un moyen plus simple de résoudre ce problème, faites-le moi savoir dans les commentaires !
Bonjour à tous,
Lors de l'insertion en base, j'ai une erreur FILEFULL qui empêche l'insertion de données au sein de ma table.
J'utilise IRIS COMMUNITY sur windows 11.
C'est quoi la cause de cette erreur ? Si c'est du à une limite de stockage, comment la résoudre ?
Cordialement,
Une expérience sur la manière d'utiliser le cadre LangChain, la recherche vectorielle IRIS et les LLM pour générer une base de données SQL compatible IRIS à partir des invites utilisateur.
Cet article a été rédigé à partir du carnet suivant. Vous pouvez l'utiliser dans un environnement prêt à l'emploi avec l'application suivante dans OpenExchange.
Configuration
Tout d'abord, nous devons installer les bibliothèques nécessaires:
!pip install --upgrade --quiet langchain langchain-openai langchain-iris pandas
Ensuite, nous importons les modules requis et configurons l'environnement:
L'accès à un stockage cloud Azure pour charger/télécharger des blobs est assez simple à l'aide des méthodes API de classe %Net.Cloud.Storage.Client désignées ou des adaptateurs entrants/sortants EnsLib.CloudStorage.*.
Notez que vous devez avoir le serveur de %JavaServer External Language opérationnel pour utiliser l'API ou les adaptateurs de stockage cloud, car ils utilisent tous deux le framework PEX à l'aide du serveur Java.
Voici un bref résumé :
L'accès à Azure Blob Storage s'effectue à l'aide d'une chaîne de connexion qui ressemble à celle-ci :
Bonjour la Communauté,
Nous aimons tous coder, mais de temps en temps, il est temps de s'éloigner du code et de faire de l'exercice ! Le défi InterSystems Walking Challenge vous aidera à recharger vos batteries et à améliorer votre forme physique. Embarquez pour un voyage virtuel de Lübeck à Lunebourg le long de l'historique Route du sel, la légendaire route commerciale qui reliait l'Europe il y a des siècles.
Gagnez des prix passionnants comme des tapis de course, des montres connectées et des médailles.
👟🚶🧑🦼Enfilez vos chaussures, sortez et codez mieux ! 🔋💻💪
📅 Les inscriptions sont ouvertes jusqu'au 8 novembre. Le défi se termine le 22 novembre 2024 à 18 h CET
Vous voulez participer ? Détails ci-dessous.
Cela fait maintenant plus de 2 ans que j'utilise quotidiennement Embedded Python. Il est peut-être temps de partager un retour d'expérience sur ce parcours.
Pourquoi écrire ce commentaire de retour d'expérience? Parce que, je suppose, je suis comme la plupart de mes collègues ici, un développeur ObjectScript, et je pense que la communauté bénéficierait de ce retour d'expérience et pourrait mieux comprendre les avantages et les inconvénients du choix de Embedded Python pour développer quelque chose dans IRIS. Et aussi éviter certains pièges.

- Commentaire de retour d'expérience : Utilisation quotidienne de Embedded Python pendant 2 ans](#feedback--using-embedded-python-daily-for-2-years)
- Introduction
- Débuter avec Python
- Embedded Python
Salut la Communauté!
Profitez de regarder la nouvelle vidéo sur la chaîne Youtube d'InterSystems France :
Bonjour la Communauté,
Global Masters ouvre ses portes !
Accédez à la plateforme via >> [ce lien] << et connectez-vous avec votre SSO InterSystems.
Nous avons récemment mis à disposition une nouvelle version d'InterSystems IRIS dans le cadre du programme d'accès anticipé à la recherche vectorielle, comprenant un nouvel index Approximate Nearest Neighbor basé sur l'algorithme d'indexation Hierarchical Navigable Small World (HNSW). Cet ajout permet des recherches de voisins les plus proches très efficaces et approximatives sur de grands ensembles de données vectorielles, améliorant considérablement les performances et l'évolutivité des requêtes.
Bonjour à la communauté,
Global Masters nous a manqué, et nous sommes sûrs que vous aussi !
🚀 Global Masters sera relancé le 3 octobre 2024 !

– 4 nouvelles annonces
– 1 nouvelle question
✓ Nouveaux membres 4 ayant rejoint le septembre
✓ Publications 1,023 publiées depuis le début
✓ Membres 150 ayant rejoint depuis le début
IrisFirebase - FCM

Selon le rapport OWASP Top Ten de 2021, un document de référence reconnu dans le domaine de la sécurité des applications web, les injections SQL arrivent en troisième position des risques les plus critiques. Ce rapport, disponible sur OWASP Top 10: Injection, souligne la gravité de cette menace et la nécessité de mettre en place des mesures de protection efficaces.
Une injection SQL se produit lorsqu'un attaquant malveillant parvient à insérer du code SQL non autorisé dans une requête envoyée à une base de données. Ce code, dissimulé au sein des entrées utilisateur, peut alors être exécuté par la base de données, provoquant des actions indésirables comme le vol de données confidentielles, la modification ou la suppression d'informations sensibles, ou encore la perturbation du fonctionnement de l'application.
Pour les développeurs axés sur le backend, le développement du frontend peut être une tâche intimidante, voire cauchemardesque. Au début de ma carrière, les frontières entre frontend et backend étaient brouillées et tout le monde était censé s'occuper des deux. Le CSS, en particulier, a été une lutte constante ; il a été ressenti comme une mission impossible.
Bonjour la Communauté,
L'équipe de certification d'InterSystems Learning Services est ravie d'annoncer la sortie de notre nouvel examen InterSystems IRIS SQL Specialist. Il est désormais disponible à l'achat et à la planification dans le catalogue d'examens InterSystems. Les candidats potentiels peuvent consulter les sujets d'examen et les questions de pratique pour les aider à s'orienter vers les approches et le contenu des questions d'examen. Les candidats qui réussissent l'examen recevront un badge de certification numérique qui peut être partagé sur des comptes de réseaux sociaux comme LinkedIn.
Dans la section précédente, nous avons exploré le processus d'installation et initié l'écriture de l'IRIS en Python natif. Nous allons maintenant examiner la traversée globale et nous intéresser aux objets de classe IRIS.
get : cette fonction est utilisée pour obtenir des valeurs à partir du nœud de traversée.
deftraversal_firstlevel_subscript():"""
^mygbl(235)="test66,62" and ^mygbl(912)="test118,78"
"""for i in irispy.node('^mygbl'):
print(i, gbl_node.get(i,'')).png)
.png)

