Salut la Communauté,
Nous sommes heureux de vous inviter au prochain concours de programmation en ligne InterSystems, axé sur Python !
🏆 Concours InterSystems Python 🏆
Durée : 15 juillet - 4 août 2024
Prix : $14,000$
.jpg)
Python est un langage de programmation interprété de haut niveau pour la programmation à usage général. Créé par Guido van Rossum et publié pour la première fois en 1991, Python a une philosophie de conception qui met l'accent sur la lisibilité du code, notamment en utilisant des espaces blancs importants
Documentation InterSystems sur Python.
Salut la Communauté,
Nous sommes heureux de vous inviter au prochain concours de programmation en ligne InterSystems, axé sur Python !
🏆 Concours InterSystems Python 🏆
Durée : 15 juillet - 4 août 2024
Prix : $14,000$
.jpg)
Dans les versions >=2021.2 d'InterSystems IRIS, nous pouvons utiliser le [binaire irispython pour écrire directement du code python au-dessus de nos instances IRIS] (https://docs.intersystems.com/iris20212/csp/docbook/DocBook.UI.Page.cls?KEY=AEPYTHON#AEPYTHON_runpython_script). Cela nous permet d'utiliser des paquets python, d'appeler des méthodes, de faire des requêtes SQL et de faire à peu près tout ce qui se fait en Objectscript mais en python.
Par exemple, ci-dessous, je vérifie si un espace de noms est présent :
#!/usr/irissys/bin/irispython
import iris
# call arbitrary class methods
result = iris.cls('%SYS.Namespace').Exists('USER')
if result == 1:
print(f"Namespace USER is present")
Comme la plupart d'entre vous le savent probablement déjà, depuis environ la fin de 2022 InterSystems IRIS a inclus la fonctionnalité de stockage de colonnes dans sa base de données, eh bien, dans l'article d'aujourd'hui, nous allons la mettre à l'épreuve par rapport au stockage de rangées habituel.
Quelle est la principale caractéristique de ce type de stockage?
Il me semble que c'était hier, lorsque nous avons réalisé un petit projet en Java pour tester les performances d'IRIS, PostgreSQL et MySQL (vous pouvez consulter l'article que nous avons écrit en juin à la fin de cet article). Si vous vous souvenez bien, IRIS était supérieur à PostgreSQL et dépassait considérablement MySQL en termes d'insertions, sans grande différence au niveau des requêtes.
Peu de temps après , @Dmitry Maslennikov m'a demandé "Pourquoi ne le testez-vous pas à partir d'un projet Python ?".
Salut la Communauté !
Dans cet article, nous présentons un aperçu de SQLAlchemy, alors commençons !
SQLAlchemy est une boîte à outils Python SQL qui sert de pont entre votre code Python et le système de base de données relationnelle de votre choix. Créée par Michael Bayer, elle est actuellement disponible en tant que bibliothèque open-source sous la licence MIT. SQLAlchemy prend en charge un large éventail de systèmes de bases de données, notamment PostgreSQL, MySQL, SQLite, Oracle et Microsoft SQL Server, ce qui la rend polyvalente et adaptable aux différentes exigences des projets.
Les outils SQLAlchemy SQL Toolkit et Object Relational Mapper (mappeur objet-relationnel) constituent un jeu complet d'outils pour travailler avec des bases de données et Python. Il comporte plusieurs domaines distincts de fonctionnalité que vous pouvez utiliser individuellement ou dans des combinaisons diverses. Les principaux composants sont illustrés ci-dessous, les dépendances des composants étant organisées en couches :

.png)
En tant que modèle linguistique d'IA, ChatGPT est capable d'effectuer une variété de tâches telles que traduire, écrire des chansons, répondre à des questions de recherche et même générer du code informatique. Avec ses capacités impressionnantes, ChatGPT est rapidement devenu un outil populaire pour diverses applications, des chatbots à la création de contenu.
Mais malgré ses capacités avancées, ChatGPT n'est pas en mesure d'accéder à vos données personnelles. Mais malgré ses capacités avancées, ChatGPT n'est pas en mesure d'accéder à vos données personnelles. Ainsi, dans cet article, je vais démontrer les étapes suivantes pour construire une IA ChatGPT personnalisée en utilisant le LangChain Framework:
La convergence continue des technologies d’IA et des systèmes de santé a apporté de nombreuses avancées convaincantes. Plantons le décor. Si vous avez interagi avec des modèles dynamiques comme ChatGPT, vous avez peut-être, comme beaucoup d'entre nous, commencé à envisager son application à l'aide de vos ensembles de données uniques. Supposons que, dans le secteur de la santé, vous souhaitiez associer cette technologie aux dossiers de santé électroniques (DPI), ou peut-être que vous visiez une interopérabilité accrue en utilisant les ressources de FHIR.
L'invention et la vulgarisation des grands modèles de langage (tels que GPT-4 d'OpenAI) ont lancé une vague de solutions innovantes capables d'exploiter de grands volumes de données non structurées qui étaient peu pratiques, voire impossibles, à traiter manuellement jusqu'à récemment. Ces applications peuvent inclure la récupération de données (voir le cours ML301 de Don Woodlock pour une excellente introduction à Retrieval Augmented Generation), l'analyse des sentiments, et même des agents d'IA entièrement autonomes, pour n'en nommer que quelques-uns !
La première chose qui nous vient à l'esprit lorsque nous envisageons de coupler Flask avec IRIS est un portail permettant d'interagir avec vos clients et partenaires. Un site web où les patients peuvent accéder à leurs examens cliniques en est un bon exemple. Bien entendu, ce cas nécessiterait une toute nouvelle couche de sécurité, que nous n'avons pas abordée dans notre dernier article. Cependant, nous pouvons l'ajouter sans effort avec Werkzeug, par exemple.
Comme la plupart d'entre vous le savent probablement déjà, depuis environ la fin de l'année 2022, InterSystems IRIS a inclus la fonctionnalité de stockage en colonnes dans sa base de données. Dans l'article d'aujourd'hui, nous allons la mettre à l'épreuve en la comparant au stockage en lignes habituel.
Quelle est la principale caractéristique de ce type de stockage ?
Dans mon dernier article, j'ai parlé du renvoi de valeurs avec Python. Mais les renvoyer est simple, ce qui peut rendre les choses plus difficiles, c'est ce dont je vais parler aujourd'hui : où la valeur est traitée.
En suivant l'exemple du dernier article, nous avons la méthode : objet dans IRIS
ClassClassMethodAsNous aurons ensuite en retour un objet Python, qu'IRIS interprète comme la classe %SYS.Python. Donc si j'appelle la méthode avec deux valeurs, comme ceci :
"Hello"nous aurons comme returnValue quelque chose comme "1@%SYS.
Django, un framework Web de haut niveau écrit en Python, est devenu un incontournable pour les développeurs à la recherche d'une solution robuste, efficace et facile à apprendre pour créer des applications Web. Sa popularité vient de sa polyvalence, offrant aux développeurs une boîte à outils efficace pour créer des applications Web. L'intégration de Django avec InterSystems IRIS introduit une synergie dynamique, offrant aux développeurs une solution complète de développement Web et de gestion de bases de données. C'est pourquoi sur le Portail des Idées, @Evgeny Shvarov a suggéré qu'avoir des Exemples pour travailler avec IRIS et Django serait bénéfique. Dans cet article, nous explorerons deux projets créés pour répondre à l'idée publiée —Django-iris par @Dmitry.Maslennikovet Iris-size-django par @Heloisa.Paiva.
Il n'y a pas si longtemps, j'ai vu l'idée de using Python Class Definition Syntax to create IRIS classes
sur le portail d'idées d'InterSystems. Elle a attiré mon attention car l'intégration d'un maximum de syntaxes donne de la visibilité aux produits d'InterSystems pour les programmeurs ayant de l'expérience dans de nombreux langages.
L'auteur de cette idée a souligné la possibilité de créer des classes en utilisant la syntaxe de Python, en plus de celles actuellement disponibles sur IRIS.
Bonjour La Communauté,
Le langage SQL reste le moyen le plus pratique pour récupérer de l'information stockée en base de données.
Le format JSON est très souvent utilisé dans les échanges de données.
Il est donc fréquent de chercher à obtenir des données au format JSON à partir de requêtes SQL.
Vous trouverez ci-dessous des exemples simples qui pourront vous aider à répondre à ce besoin à partir de code en ObjectScript et en Python.
ObjectScript : via le SQL dynamique avec %SQL.Statement
Nous avons un délicieux dataset avec des recettes écrites par plusieurs utilisateurs de Reddit, mais la plupart des informations sont du texte libre comme le titre ou la description d'un article. Voyons comment nous pouvons très facilement charger l'ensemble de données, extraire certaines fonctionnalités et l'analyser à l'aide des fonctionnalités du grand modèle de langage OpenAI contenu dans Embedded Python et le framework Langchain.
Tout d’abord, nous devons charger l’ensemble de données ou pouvons-nous simplement nous y connecter ?
Avec l'avènement d'Embedded Python, une myriade de cas d'utilisation sont désormais possibles depuis IRIS, directement en utilisant les librairies Python pour des opérations plus complexes. L'une de ces opérations consiste à utiliser des outils de traitement du langage naturel tels que la comparaison de similarités textuelles.
Note: Pour cet article, j'utiliserai un système Linux sur lequel IRIS est installé.
Bonjour,
J'ai une question concernant la version de python, j'ai lu sur la doc que la version compatible était 3.9.5 pour le bon fonctionnement de python sur Iris.
Est-ce que nous sommes obligés de rester sur cette version ou pouvons-nous utiliser les versions plus récentes ?
Merci par avance
Cordialement
Cela semble être hier lorsque nous avons réalisé un petit projet en Java pour tester les performances d'IRIS, PostgreSQL et MySQL (vous pouvez consulter l'article que nous avons écrit en juin à la fin de cet article). Si vous vous en souvenez, IRIS était supérieur à PostgreSQL et clairement supérieur à MySQL en termes d'insertions, sans grande différence en termes de requêtes.
Eh bien, peu de temps après, @Dmitry Maslennikov m'a dit "Pourquoi ne le testez-vous pas à partir d'un projet Python ?
J'aimerais partager certains des derniers projets que j'ai mis en œuvre
.png)

Ceci est une simple démo de l'IRIS avec un exemple de RAG (Retrieval Augmented Generation).
Le backend est écrit en Python en utilisant IRIS et IoP, le modèle LLM est orca-mini et est servi par le serveur ollama.
Le frontend est un chatbot écrit avec Streamlit.
Bonjour,
Je suis en train de faire un test avec django sur notre base de données. Le but étant de créer une API pour voir la réactivité de celle-ci.
J'ai créé le projet sans problème, j'ai réussi à créer les 16 000 lignes de models avec inspect_db. Tout se passait bien jusqu'au moment où j'ai voulu testé mon projet, 'Accès refusé'.
De ce que j'ai pu voir, Il n'y aurait pas d'erreur de code, car les seules erreurs retournées sont les suivantes.
Je ne pense pas que ce soit un problème majeur, plutôt un manque de pratique sur votre système. Auriez-vous une idée à me soumettre?
Bonjour,
Nous avons voulu mettre en pré-production un flux 100% python, cependant lorsqu'on a lancé la commande iop pour tester avec l'utilisateur qui va déployer via une CI/CD le code, voici ce qu'on obtient:.png)
ssh.gitlab est notre utilisateur, nous sommes sur un serveur Windows 10 et ssh.gitlab est admin.
Y a-t-il des modifications à faire sur le portail d'IRIS ? (Un utilisateur est créé pour la CI/CD suite à ce post)
Merci d'avance !
Cordialement,
Cyril
Bonjour,
En souhaitant créer une production qui récupère un fichier provenant d'une API et qui envoie ce fichier sur un serveur SFTP, j'ai rencontré un problème avec la librairie de Guillaume Rongier.
Je reçois des bytes depuis une opération jusque là aucun problème, j'ai lié un SFTP à mon opération, les credentials sont les bons, l'adresse ip, le port, le dossier dans lequel déposer le fichier également. Cependant j'ai cette erreur:
ERROR <Ens>ErrException: <METHOD DOES NOT EXIST>PutStream+11^EnsLibVoici mon code:
fromclassXArticleExportBonjour,
Je suis toujours en train de préparer le terrain pour inclure la librairie de Guillaume Rongier pour utiliser InterSystems entièrement via Python. Cependant notre environnement local tourne sur Docker avec l'OS linux, jusque là nous n'avons aucun problème avec la librairie. Le problème arrive lorsque l'on passe sur la pré-production où iris est installé directement sur Windows. J'installe les librairies requises avec le package pip et un fichier requirements.txt contenant ceci:
dataclass_csv==1.4.0.0Bonjour,
Je suis actuellement le projet d'auto-formation de @Guillaume Rongier pour faire du 100% Python sur InterSystems, j'ai suivi les étapes une par une cependant, lorsqu'il s'agit de créer une production, cela ne marche pas. Voici mon erreur:
iop --migrate /home/irisowner/dev/src/settings.py
Traceback (most recent call last):
File "/home/irisowner/.local/bin/iop"inJ'ai utilisé le projet dans lequel nous avons déjà tout créé dans mon entreprise (en local pour éviter de casser la production).
L'objectif des productions d'interopérabilité est de vous permettre de connecter des systèmes afin de transformer et d'acheminer des messages entre eux. Pour connecter des systèmes, vous développez, configurez, déployez et gérez des productions qui intègrent plusieurs solutions.
C’est ce que nous dit la documentation InterSystems sur son site de référence, mais que faut-il réellement faire pour déployer une production ?

Salut la Communauté!
Profitez de regarder la nouvelle vidéo sur le moyen de se connecter aux InterSystems Cloud Services à partir de l'application Python à l'aide du pilote InterSystems DB-API.
import os
# Récupérer les variables d'environnement
db_host = os.getenv('DB_HOST')
db_port = os.getenv('DB_PORT')
db_namespace = os.getenv('DB_NAMESPACE')
db_username = os.getenv('DB_USERNAME')
db_password = os.getenv('DB_PASSWORD')
# Créer une connexion à la base de données
conn = irisnative.createConnection(db_host, db_port, db_namespace, db_username, db_password)
# Créer une instance IRIS à partir de cette connexion
iris_native = irisnative.createIris(conn)
status = iris_native.classMethodValue('%SYSTEM.OBJ', 'Load', 'Production.cls', 'ck')
if status == 1:
print("Le fichier Production.cls a été compilé avec succès.")
else:
print("Une erreur s'est produite lors de la compilation du fichier Production.cls.")
Ce code Python fonctionne parfaitement mais je cherche une autre alternative sans créer de connexion à IRIS afin d'éviter toute faille de sécuritéEst-il possible d'utiliser Django avec InterSystems Iris, dont les classes sont implémentées en ObjectScript ?
Class EpErp.ARTICLES Extends (%Persistent, %JSON.Adaptor, %XML.