Article Alex Woodhead · Sep 13 4m read

Plug-N-Play on Pattern Match WorkBench

Article to announce pre-built pattern expressions are available from demo application.

AI deducing patterns require ten and more sample values to get warmed up.

The entry of a single value for a pattern has therefore been repurposed for retrieving pre-built patterns.

Example: Email address

Paste an sample value for example an email address in description and press "Pattern from Description".

The sample is tested against available built-in patterns and any matching patterns and descriptions are displayed.

0
0 0
Article Alex Woodhead · Jul 1 3m read

Thank you community for translating an earlier article into Portuguese.
Am returning the favor with a new release of Pattern Match Workbench demo app.

Added support for Portuguese.

The labels, buttons, feedback messages and help-text for user interface are updated.

Pattern Descriptions can be requested for the new language.

The single AI Model for transforming user prompt into Pattern match code was fully retrained.

Values to Pattern Code Model also retrained

0
0 0
Article Alex Woodhead · Jun 19 3m read

Audience

Those curious in exploring new GenerativeAI usecases.

Shares thoughts and rationale when training generative AI for pattern matching.

Challenge 1 - Simple but no simpler

A developer aspires to conceive an elegant solution to requirements.
Pattern matches ( like regular expressions ) can be solved for in many ways. Which one is the better code solution?
Can an AI postulate an elegant pattern match solution for a range of simple-to-complex data samples?

Consider the three string values:

  • "AA"
  • "BB"
  • "CC"
0
0 0
Article Alex Woodhead · May 28 2m read

Audience

Those curious in exploring new GenerativeAI usecases.

Developers and analysts looking for a quick way to tame the Pattern Match operator.

In both ObjectScript and SQL this has a quite visually dense format.

if booking?2A1"-"1(1"CARD",1"RAD")1.5N
SELECTDISTINCT PatientRef
FROM APPOINTMENT.BOOKING
WHERE Active='Y'AND
LocationCode %PATTERN '2A1"-"1(1"CARD",1"RAD")1.5N'

Challenge

Use generative AI to assist create and modify pattern match code from different natural language input.

0
0 0
Discussion Alex Woodhead · Apr 12

There is a list of numbers from 1 to 190.

AllList="1,2,3,4,5,6,7,8,9,.....,187,188,189,190"

There is a collection of sets of these values:

List(1)="3,5,6,7,9"
List(2)="1,2,6,9"
List(3)="5,8,9"
List(4)="2,4,6,8"
List(5)="4,7,9"

What is an elegant approach in Object Script to pick the least number of list items:

  • List(1)
  • List(5)
  • List(n)

That together would cover as many numbers as possible from the AllList.

Interested in best coverage over efficiency.

0
0 0
Discussion Alex Woodhead · Apr 10

Background

Embeddings is a new IRIS feature empowering the latest capability in AI semantic search.
This presents as a new kind of column on a table that holds vector data.
The embedding column supports search for another existing column of the same table.
As records are added or updated to the table, the supported column is passed through an AI model and the semantic signature is returned.
This signature information is stored as the vector for future search comparison.
Subsequently when search runs, a comparison of the stored signatures occurs without any further AI model processing overhead.

0
0 0
Article Alex Woodhead · Mar 30 5m read

This article shares analysis in solution cycle for the Open Exchange application TOOT ( Open Exchange application )

The hypothesis

A button on a web page can capture the users voice. IRIS integration could manipulate the recordings to extract semantic meaning that IRIS vector search can then offer for new types of AI solution opportunity.

The fun semantic meaning chosen was for musical vector search, to build new skills and knowledge along the way.

Looking for simple patterns

0
0 0
Article Alex Woodhead · Mar 24, 2024 8m read

BPL from 10,000 feet

BPL stands for Business Process Language.
This is an XML format for describing complex information orchestration interactions between systems.
InterSystems Integration engine has for two decades, provided a visual designer to build, configure, and maintain, BPL using a graphical interface.
Think of it like drawing a process flow diagram that can be compiled and deployed.

An example: Make a cup of tea

BPL components are added to Integration productions like any other built-in or custom business component.

Test example input and output

0
0 452
Article Alex Woodhead · Jan 26, 2024 8m read

Considering new business interest in applying Generative-AI to local commercially sensitive private data and information, without exposure to public clouds. Like a match needs the energy of striking to ignite, the Tech lead new "activation energy" challenge is to reveal how investing in GPU hardware could support novel competitive capabilities. The capability can reveal the use-cases that provide new value and savings.

Sharpening this axe begins with a functional protocol for running LLMs on a local laptop.

2
6 1496
Article Alex Woodhead · Sep 5, 2023 8m read

Overview

The online documentation contains a reference Defining and Using Class Queries -

Customizing Stored Procedures with ObjectScript directly has been useful to access NoSQL storage and external messaging via integration, to present output in tabular format.

For example: An application that already uses 90% SQL interaction from a front end, can then also extend this access to the other 10% of required platform functionality, via the same SQL access.

The purpose of this article is to explore how to achieve the same effect via Embedded Python methods.

0
0 408
Article Alex Woodhead · Jul 17, 2023 1m read

In response to a community question asking to view Request and Response message types in Production settings..

A community helper class was implemented should people need this. ( alwo.EnsHelper.HostRequestResponseInfo )

Install

zpm install alwo-enshelper

The code may serve as an example, to project bespoke configuration into Production settings.

Usage

Business Service

Class myService extends (Ens.BusinessService, alwo.EnsHelper.HostRequestResponseInfo)
{
  ...
}

Business Process

Class myBusinessProcess extends (Ens.BusinessProcess, alwo.EnsHelper.HostRequestResponseInfo)
{
  ...
}
1
2 266
Question Alex Woodhead · Jun 30, 2023

Motive

Am just plain curious about how people may be approaching this area.

The Question

The %SYSTEM.License API wraps an IRIS key that is specific to a range of InterSystems products with

  •  Platform features
  •  Platform behaviors
  •  Expiry date
  •  Capacity / Usage limits

If a company is implementing deployed products that:

  • run on top of IRIS
  • optionally support other vendor IRIS products

For example:

  • a "plug-in" API
  • a knowledge-base

And they have an IPM deployed solution.

2
0 246
Article Alex Woodhead · Jun 20, 2023 2m read

Excuse if this is obvious to Python programmers but for those crossing over from ObjectScript this may be a useful tip.

The scenario is developing some Embedded python commands.

Testing out functionality is being confirmed via the shell:

$SYSTEM.Python.Shell()
 
Python 3.9.5 (default, Mar 14 2023, 06:58:44) [MSC v.1927 64 bit (AMD64)] on win32
Type quit() or Ctrl-D to exit this shell.
>>>

When Python evaluates an expression in the shell, it prints the result of the expression to the terminal.

>>> 1 + 2

3

It is quite easy to accidentally evaluate and print out values

0
0 268
Article Alex Woodhead · Jun 16, 2023 2m read

An interim idea to bring more dark to the docs with different font.

Process:

  • In Firefox web browser address bar navigate to: "about:support"
  • Look for label "Profile Folder", and click on the corresponding "Open Folder" button.
  • Drill-down / Open sub-folder called Chrome.
  • Create file here called: userContent.css

Content of file:

0
0 200
Article Alex Woodhead · Jun 15, 2023 6m read

Demonstration example for the current Grand Prix contest for use of a more complex Parameter template to test the AI.

Interview Questions

There is documentation. A recruitment consultant wants to quickly challenge candidates with some relevant technical questions to a role.

Can they automate making a list of questions and answers from the available documentation?

Interview Answers and Learning

One of the most effective ways to cement new facts into accessible long term memory is with phased recall.

0
0 1400
Article Alex Woodhead · Jun 13, 2023 3m read

Yet another example of applying LangChain to give some inspiration for new community Grand Prix contest.

I was initially looking to build a chain to achieve dynamic search of html of documentation site, but in the end it was simpler to borg the static PDFs instead.

Create new virtual environment

mkdir chainpdf

cd chainpdf

python -m venv .

scripts\activate 

pip install openai
pip install langchain
pip install wget
pip install lancedb
pip install tiktoken
pip install pypdf

set OPENAI_API_KEY=[ Your OpenAI Key ]

python

Prepare the docs

4
2 1299
Article Alex Woodhead · Jun 12, 2023 3m read

This article is a simple quick starter (what I did was) with SqlDatabaseChain.

Hope this ignites some interest.

Many thanks to:

sqlalchemy-iris author @Dmitry Maslennikov

Your project made this possible today.

The article script uses openai API so caution not to share table information and records externally, that you didn't intend to.

A local model could be plugged in , instead if needed.

Creating a new virtual environment

7
3 3532
Article Alex Woodhead · Jun 10, 2023 5m read

Written in reply to community post for can Python create HL7 Message dynamically.

Pre-requisites and setup

Use an integration enabled namespace.
Note: USER namespace is not enabled for interoperability by default.
If following suggest create a new interoperatibility namespace to explore functionality.

# Switch to
ZN "[Interoperability Namespace Name]"

# Launch interactive Python shell:
Do $SYSTEM.Python.Shell()

Script start

0
2 544
Article Alex Woodhead · Apr 16, 2023 4m read

Overview

Cross-Skilling from IRIS objectScript to Python it becomes clear there are some fascinating differences in syntax.

One of these areas was how Python returns Tuples from a method with automatic unpacking.

Effectively this presents as a method that returns multiple values. What an awesome invention :)

out1, out2 = some_function(in1, in2)

ObjectScript has an alternative approach with ByRef and Output parameters.

Do ##class(some_class).SomeMethod(.inAndOut1, in2, .out2)

Where:

  • inAndOut1 is ByRef
  • out2 is Output

The leading dot (".") in front of the variable name passes ByRef and for Output.

0
0 535
Article Alex Woodhead · Jan 28, 2023 3m read

Some Usage cases

1. A deployment may consist of two high availability instances and two disaster recovery instances in a different data center.

The corresponding UAT environment could replicate this giving a total of 8 instances. How do you confirm CPF and Scheduled task alignment across ALL instances.

2
0 446