Nouvelle publication

Rechercher

Article
· Déc 18, 2023 13m de lecture

Vector search and RAG (Retrieval Augmented Generation) models

1. IRIS RAG Demo

IRIS RAG Demo

This demo showcases the powerful synergy between IRIS Vector Search and RAG (Retrieval Augmented Generation), providing a cutting-edge approach to interacting with documents through a conversational interface. Utilizing InterSystems IRIS's newly introduced Vector Search capabilities, this application sets a new standard for retrieving and generating information based on a knowledge base.
The backend, crafted in Python and leveraging the prowess of IRIS and IoP, the LLM model is orca-mini and served by the ollama server.
The frontend is an chatbot written with Streamlit.

3 Comments
Discussion (3)2
Connectez-vous ou inscrivez-vous pour continuer
Annonce
· Déc 12, 2023

CLOSED: GenAI Crowdsourcing Mini-Contest: Let's Think Big!

 

 

Hi Community,

InterSystems Innovation Acceleration Team invites you to take part in the GenAI Crowdsourcing Mini-Contest.

GenAI is a powerful and complex technology. Today, we invite you to become an innovator and think big about the problems it might help solve in the future.

What do you believe is important to transform with GenAI?

Your concepts could be the next big thing, setting new benchmarks in technology!

 

Contest Structure

     1. Round 1 - Pain Point / Problem Submission:

With all your knowledge about GenAI and of InterSystems capabilities, what pain point / problems would you tackle, armed with the power of GenAI & InterSystems? Healthcare, education, agriculture - no field is off-limits.

The deadline for idea submission is December 19.

     2Round 2 - Community Investment Game:

You will get to "invest" by casting your votes in the pain point(s) you think are most promising or important. The idea that attracts the most "funding" in Round 2 emerges as the winner - find out more about Round 2 here.

 

🎁 Rewards

The mastermind of the winning concept earns 5,000 points, while all astute "investor(s)" backing the winning idea receive 200 bonus points each.

2 Comments
Discussion (2)3
Connectez-vous ou inscrivez-vous pour continuer
Question
· Déc 12, 2023

Arthematic overflow only on one server- mssql sql

When running a sql insert query with CONVERT('datetime', '2023-12-12 11:27:00',120) in an insert statement into a table this works on one server and not the other. 

i.e. to record datetimereceived 

Property datetimereceived As %TimeStamp(EXTERNALSQLNAME = "date_time_received", EXTERNALSQLTYPE = 93) [ SqlColumnNumber = 12, SqlFieldName = date_time_received ];

The gateway connections are the same, The one that works runs a v6 SQL server db the one that doesn't is the standard version 10 so although there is a mismatch i do not believe it would be this as the older setup works

 

Has anyone come across this

[SQLCODE: <-400>:<Fatal error occurred>]

  [%msg: < SQLState: (22003) NativeError: [8115] Message: [Microsoft][ODBC SQL Server Driver][SQL Server]Arithmetic overflow error converting expression to data type datetime. >]

2 Comments
Discussion (2)1
Connectez-vous ou inscrivez-vous pour continuer
Article
· Déc 9, 2023 3m de lecture

Working Around SOAP Service Timeouts

Some of our applications provide SOAP services that use “DSTIME”-based SQL queries that return records that have recently been added or changed. Since the records don’t change often, these queries usually return a small number of records and therefore take little time.

However, we sometimes make a table change that affects all records in that table. When that happens, on the next SOAP request from a SOAP client the service will run its query which will take an extra-long time because all records are included (for our apps, the queries return hundreds of thousands of records in this case).

The amount of time for producing the results therefore sometimes exceeds the default “timeout” specified in the CSP gateway connection for the instance hosting the SOAP service. This results in the connection being closed before the client gets its requested data and the client instead gets an error message like the following:

ERROR #5002: ObjectScript error: InvokeClient+208^%SOAP.WebClient.1

We can confirm the error is due to a timeout by viewing SOAP error details on the client using the “InterSystems IRIS SOAP Log” feature described here.

The following output from the log file confirms the timeout error:

Input to Web client with SOAP action = http://www.intersystems.com/user/SOAPTest.SlowSOAPService.GetSlowService

ERROR #5922: Timed out waiting for response
string**** SOAP client return error. method=GetSlowService, action=http://www.intersystems.com/user/SOAPTest.SlowSOAPService.GetSlowService
     ERROR #5922: Timed out waiting for response

To address this error, we added code to set a connection timeout to the instance of the SOAP client before calling the SOAP method that uses that one query. We had run the query on the Management Portal’s SQL page, writing the output to a csv file, and noted that it took over 6 minutes to complete. We therefore added this code to increase the timeout to 10 minutes before calling the service (the names were changed to protect the innocent 😊):

    #dim result As %XML.DataSet
    set wc = ##class(SlowSOAPService.WebClient.SlowSOAPServiceSoap).%New()
    set sc = wc.TimeoutSet(600)
    set sc = wc.GetSlowService(.result)

The %SOAP.WebService class provides the “TimeoutSet” method that only changes the connection timeout value for this one request. It doesn’t affect the CSP gateway connection’s timeout value, which by default is a short 30 seconds (to incentivize writing efficient server-side code).

If fact, to preserve that incentive, we can ensure that the extended timeout is only used in the rare cases we need it by wrapping the client code in conditional code that checks a global, as follows:

    #dim result As %XML.DataSet
    set wc = ##class(SlowSOAPService.WebClient.SlowSOAPServiceSoap).%New()
    if (^reallySlowSvcExpectedTime > 0) {
        set sc = wc.TimeoutSet(^reallySlowSvcExpectedTime)
    }
    set sc = wc.GetSlowService(.result)

The global acts as both a flag (greater than 0? Set the timeout) and the number of seconds to wait. For the issue described at the start of this article, we would notify clients that they should temporarily set a global using an IRIS terminal connected to their instance as follows:

    set ^reallySlowSvcExpectedTime = 600

Once we’re again expecting the service to quickly return a small amount of data, clients can be reset to use the default timeout by setting the global back to 0:

    set ^reallySlowSvcExpectedTime = 0
3 Comments
Discussion (3)2
Connectez-vous ou inscrivez-vous pour continuer
Question
· Déc 8, 2023

SQL Server ODBC connection with DSN created, does not display in list of DSNs in SQL Gateway connection screen.

DSN created and tested in Linux;

This DSN does not list SQLGateway connection->DSN list

 

I have set the LibPath

8 Comments
Discussion (8)2
Connectez-vous ou inscrivez-vous pour continuer