发布新帖

查找

文章
· 七月 4, 2023 阅读大约需 2 分钟

Build iris image with cpf merge

When it comes to build an iris image, we can use the cpf merge files.

Here is an cpf merge example:

[Actions]
CreateDatabase:Name=IRISAPP_DATA,Directory=/usr/irissys/mgr/IRISAPP_DATA

CreateDatabase:Name=IRISAPP_CODE,Directory=/usr/irissys/mgr/IRISAPP_CODE

CreateNamespace:Name=IRISAPP,Globals=IRISAPP_DATA,Routines=IRISAPP_CODE,Interop=1

ModifyService:Name=%Service_CallIn,Enabled=1,AutheEnabled=48

CreateApplication:Name=/frn,NameSpace=IRISAPP,DispatchClass=Formation.REST.Dispatch,AutheEnabled=48

ModifyUser:Name=SuperUser,PasswordHash=a31d24aecc0bfe560a7e45bd913ad27c667dc25a75cbfd358c451bb595b6bd52bd25c82cafaa23ca1dd30b3b4947d12d3bb0ffb2a717df29912b743a281f97c1,0a4c463a2fa1e7542b61aa48800091ab688eb0a14bebf536638f411f5454c9343b9aa6402b4694f0a89b624407a5f43f0a38fc35216bb18aab7dc41ef9f056b1,10000,SHA512
1 Comment
讨论 (1)1
登录或注册以继续
文章
· 七月 3, 2023 阅读大约需 3 分钟

Password Manager using Flask and InterSystems IRIS

Introduction

A password manager is an important security tool that allows users to store and manage their passwords without the need to remember or write them down in insecure places. In this article, we will explore the development of a simple password manager using the Flask framework and the InterSystems IRIS database.

Key Features

Our password manager application will provide the following key features:

  1. User registration with account creation.
  2. User authentication during login.
  3. Adding new passwords with a title, login, and password.
  4. Encryption and secure storage of passwords in the database.
  5. Viewing the list of saved passwords for a user.
  6. Editing and deleting saved passwords.
  7. Ability to log out and end the session.

Future Plans

While the current version of our password manager application already offers essential functionality, there are several potential future enhancements that can be considered:

  1. Password strength evaluation: Implement a feature to analyze the strength of passwords entered by users. This can include checking for complexity, length, and the presence of special characters.
  2. Two-factor authentication (2FA): Integrate a 2FA mechanism to add an extra layer of security during login. This can involve using SMS verification codes, email verification, or authenticator apps.
  3. Password generator: Include a password generator that can generate strong, random passwords for users. This feature can provide suggestions for creating unique and secure passwords.
  4. Password expiration and change reminders: Implement a mechanism to notify users when their passwords are due for expiration or recommend periodic password changes to enhance security.
  5. Secure password sharing: Allow users to securely share passwords with others, such as family members or team members, while maintaining the necessary encryption and access controls.

 

By incorporating these enhancements, our password manager can evolve into a more robust and feature-rich application, catering to the increasing security needs of users.

Tools Used

To develop our password manager, we will be using the following tools:

  • Flask: A lightweight web framework for building web applications in Python.
  • InterSystems IRIS: A high-performance database that provides reliable data storage and management.

Benefits of Using Flask and InterSystems IRIS

  • Flask provides simplicity and conciseness in web development by offering a wide range of tools and functionalities.
  • Flask allows easy creation of routes, handling requests, and returning HTML responses.
  • InterSystems IRIS ensures reliable data storage, providing high performance and security.
  • Using a database for storing passwords ensures encryption and protection against unauthorized access.

Conclusion

A password manager developed using Flask and InterSystems IRIS provides a convenient and secure way to store and manage passwords. It allows users to store complex passwords without the need to remember or write them down in insecure places. Developing such an application is a great exercise for learning web development with Flask and working with databases.

1 Comment
讨论 (1)1
登录或注册以继续
文章
· 七月 2, 2023 阅读大约需 4 分钟

LangChain – Unleashing the full potential of LLMs

image

Hi Community

In this article, I will introduce my application irisChatGPT which is built on LangChain Framework.

First of all, let us have a brief overview of the framework.

The entire world is talking about ChatGPT and how Large Language Models(LLMs) have become so powerful and has been performing beyond expectations, giving human-like conversations. This is just the beginning of how this can be applied to every enterprise and every domain! 

The most important question that remains is how to apply this power to domain-specific data and scenario-specific response behavior suitable to the needs of the enterprise. 

LangChain provides a structured and effective answer to this problem at hand! LangChain is the technology that can help realize the immense potential of the LLMs to build astounding applications by providing a layer of abstraction around the LLMs and making the use of LLMs easy and effective. LangChain is a framework that enables quick and easy development of applications that make use of Large Language Models, for example, GPT-3.

The framework, however, introduces additional possibilities, for example, the one of easily using external data sources, such as Wikipedia, to amplify the capabilities provided by the model. I am sure that you have all probably tried to use Chat-GPT and find that it fails to answer about events that occurred beyond a certain date. In this case, a search on Wikipedia could help GPT to answer more questions.


LangChain Structure

The framework is organized into six modules each module allows you to manage a different aspect of the interaction with the LLM. Let’s see what the modules are.

  • Models: Allows you to instantiate and use three different types of language-models, which are:
    • Large Language Models (LLMs): these foundational machine learning models that are able to understand natural language. These accept strings in input and generate strings in output.
    • Chat Models: models powered by LLM but are specialized to chat with the user. You can read more here.
    • Text Embedding Models: these models are used to project textual data into a geometric space. These models take text as input and return a list of numbers, the embedding of the text.
  • Prompts: The prompt is how we interact with the model to try to obtain an output from it. By now knowing how to write an effective prompt is of critical importance. This framework module allows us to better manage prompts. For example, by creating templates that we can reuse.
  • Indexes: The best models are often those that are combined with some of your textual data, in order to add context or explain something to the model. This module helps us do just that.
  • Chains: Many times to solve tasks a single API call to an LLM is not enough. This module allows other tools to be integrated. For example, one call can be a composed chain with the purpose of getting information from Wikipedia and then giving this information as input to the model. This module allows multiple tools to be concatenated in order to solve complex tasks.
  • Memory: This module allows us to create a persisting state between calls of a model. Being able to use a model that remembers what has been said in the past will surely improve our application.
  • Agents: An agent is an LLM that makes a decision, takes an action, makes an observation about what it has done, and continues in this manner until it can complete its task. This module provides a set of agents that can be used.

Now let’s go into a little more detail and see how to implement code by taking advantage of the different modules.

How LangChain works
 

Step1 :
User sends the question to LangChain

Step2 :
LangChain send this question to Embedding Model 


Step3 :
Embedding model converts the text to vectors as text is stored as vectors in the database and returns to LangChain

Step4 :
LangChain send these vectors to the vector database (There are multiple vector database, We are using chroma in our application)


Step5 :
Vector database returns Top K Approximately Nearest Neighbors (KNN) Vectors 


Step6 :
LangChain send question along with KNN vectors to Large Language Models (LLMs) (We are using OpenAI in our application)

Step7 :
LLM returns the answer to Langchain

Step8 :
Langchain returns the answer to the user


About Application

irisChatGPT application leverages the functionality of one of the hottest python framework LangChain built around Large Language Models (LLMs). LangChain is a framework that enables quick and easy development of applications that make use of Large Language Models. Application is built by using objectscript with the help of intersystems Embedded Python functionality. It also contains Streamlit web application which is an open-source Python app framework to create beautiful web apps for data science and machine learning.

 

Features

Below is the list of application features along with the related screenshots

 

 Built-in Intersystems ObjectScript Reference ChatGPT

 

Built-in InterSystems Grand Prix Contest 2023 ChatGPT 

 

ChatGPT with FHIR server







Answer questions over a Cache database by using SQLDatabaseChain
 

 

Create your own chatGPT model and chat with it
 

OpenAI ChatGPT
 

Wikipedia Search
 

Search on the internet by using DuckDuckGo (DDG) general search engine
 

Generate Python code by using Python REPL LangChain functionality

 

 

Streamlit Web application  ONLINE DEMO     

Objectscript Reference
 
Grand Prix Contest 2023


Personal ChatGPT 

OpenAI ChatGPT
 

 

Thanks

13 Comments
讨论 (13)3
登录或注册以继续
公告
· 六月 30, 2023

Nuevo vídeo: "Descubriendo los secretos del Web Gateway de InterSystems"

¡Hola Comunidad!

Hemos grabado el webinar que hicimos ayer y lo hemos subido al canal de YouTube de la Comunidad de Desarrolladores en español. Si os perdisteis el webinar o lo queréis volver a ver con más detalle, ya está disponible la grabación!

Descubriendo los secretos del Web Gateway de InterSystems

Por cierto, ¿habéis echado un vistazo a las listas de reproducción que tenemos en el canal de YouTube? Hay una que recoge todos los webinars que hemos realizado (¡ya llevamos veinticuatro!), otra lista con tutoriales y otra con trucos y demos.

¡Echadle un ojo y dadle al play! ▶️

讨论 (0)1
登录或注册以继续
问题
· 六月 26, 2023

Returning a DICOM Worklist using a non-DICOM external data source

Hi everyone.

Has anyone here had any luck with receiving a DICOM C-FIND-RQ and returning a worklist using data gathered from a non-DICOM source (for example, an external SQL query) and would be able to share how they achieved this?

I started to look at the demo however I'm tripping over the logic for building the response. I think I just need to just act on the initial message by executing the call to the external data source and then looping through the result set, however the demos structure seems to suggest that I need to almost loop through the result set outside of the process (using a "context variable") to allow for a DICOM C-CANCEL-RQ to be able to interrupt the result set loop.

2 Comments
讨论 (2)1
登录或注册以继续