Oliver Wilms · Apr 20, 2025 go to post

I have tried the docker prune and rebuilt and deployed the app. It is still not working. I wonder if it matters that the entrypoint was changed from entrypoint: ["/bin/sh", "/model_files/run_ollama.sh"] to  entrypoint: ["/usr/bin/bash", "/model_files/run_ollama.sh"]?

Oliver Wilms · Apr 19, 2025 go to post

Yes, it is:

services:
  iris:
    build: 
      context: .
      dockerfile: Dockerfile
    restart: always
    expose:
      - 8501
    ports: 
      - 51972:1972
      - 53795:52773
      - 53773
    networks:
      - iris-llm2-network
    volumes:
      - ./:/irisdev/app
      - ./init.sh:/docker-entrypoint-initdb.d/init.sh
  ollama:
    image: ollama/ollama:latest
    ports:
      - 11434:11434
    volumes:
      - ./model_files:/model_files
      - .:/code
      - ./ollama:/root/.ollama
    container_name: ollama
    pull_policy: always
    tty: true
    restart: always
    entrypoint: ["/usr/bin/bash", "/model_files/run_ollama.sh"]
    networks:
      - iris-llm2-network
#  ollama:
#    image: ollama/ollama:latest
#    deploy:
#      resources:
#        reservations:
#          devices:
#          - driver: nvidia
#            capabilities: ["gpu"]
#            count: all  # Adjust count for the number of GPUs you want to use
#    ports:
#      - 11434:11434
#    volumes:
#      - ./model_files:/model_files 
#      - .:/code
#      - ./ollama:/root/.ollama
#    container_name: ollama_iris
#    pull_policy: always
#    tty: true
#    entrypoint: ["/bin/sh", "/model_files/run_ollama.sh"] # Loading the finetuned Mistral with the GGUF file
#    restart: always
#    environment:
#      - OLLAMA_KEEP_ALIVE=24h
#      - OLLAMA_HOST=0.0.0.0
#    networks:
#      - iris-llm2-network

  
  streamlit:
    build:
      context: ./
      dockerfile: ./streamlit/Dockerfile
    #stdin_open: true # docker run -i
    #tty: true 
    #entrypoint: /bin/sh
    command: streamlit run /usr/src/app/Menu.py --server.port 8501
    volumes:
      - ./src/python/rag:/usr/src/app
    expose: [8501]
    ports:
      - 8501:8501
    image: yourstreamlitapp:latest 
    networks:
      - iris-llm2-network
        
networks:
  iris-llm2-network:
    driver: bridge

Oliver Wilms · Apr 4, 2025 go to post

I see there is a discrepancy between the resource and the Application role. I need to remove extra percent sign.

Oliver Wilms · Apr 4, 2025 go to post

Here is the Namespace configuration in Installer class:

Class App.Installer
{

XData setup
{
<Manifest>
  <Default Name="SourceDir" Value="/opt/feeder/src"/>
  <Default Name="Namespace" Value="FEEDER"/>
  <Default Name="Resource" Value="%DB_DEFAULT"/>

  <Namespace Name="${Namespace}" Code="${Namespace}" Data="${Namespace}" Create="yes" Ensemble="1">
    <Configuration>
      <Database Name="${Namespace}" Dir="/voldata/irisdb/feeder" Create="yes" Resource="${Resource}"/>
    </Configuration>

I see the resource is %DB_DEFAUILT with all UPPERCASE.

Oliver Wilms · Mar 26, 2025 go to post

I would use an out of the box File Service and send a StreamContainer to a BPL process. The BPL can read one line at a time and call a process...

Oliver Wilms · Jan 19, 2025 go to post

Hi, Julius. Thank you for responding to my question.

I work for Department of Veterans Affairs. I believe the coding standard including prohibiting argumentless or exclusive NEW is not new.

Someone modified old code to become non-interactive. Unfortunately they did not follow coding standard and now it is up to me to fix it. I found where variables are killed.

I think a class method using procedure block should be equivalent to exclusive new. All variables are hidden except parameters or public list.

Oliver Wilms · Jan 19, 2025 go to post

I found the code responsible for Killing variables. I understand why I get <UNDEFINED> when I run the original legacy code WITHOUT the Exclusive NEW.

Oliver Wilms · Jan 11, 2025 go to post

I have installed ZPM into %SYS namespace on my IRIS instance running on my work laptop.

When I tried zpm "install git-source-control" in %SYS namespace, I see this:

ERROR! 'git-source-control' not found in any repository.

Oliver Wilms · Dec 16, 2024 go to post

I got this error, because I had the wrong value for Authentication signing algorithm. I changed it from ES512 to RS384.

Oliver Wilms · Dec 15, 2024 go to post

I think Code Quality is not working what I copy from iris-interoperability-contest. 

Oliver Wilms · Dec 13, 2024 go to post

I would try something like this:

Set tRequest.Https = 1

Set tRequest.SSLCheckServerIdentity = 0

Set tRequest.SSLConfiguration = "ISC.FeatureTracker.SSL.Config"

Oliver Wilms · Nov 20, 2024 go to post

I have updated flags to 1 to remove CR/LF.

I still see Invalid Signature warning in jwt.io

Oliver Wilms · Nov 20, 2024 go to post

I have updated my code as follows:

ClassMethod test2() As %Status

{

    #Dim sigJOSE As %DynamicObject

    #Dim encJOSE As %DynamicObject

    #Dim claims As %DynamicObject

    Set ts = $ZTIMESTAMP  // 67161,81327.6633447

    Set exp = ##class(%OAuth2.Utils).TimeInSeconds(ts,300)

    Set nbf = ##class(%OAuth2.Utils).TimeInSeconds(ts,0)

    Set iat = ##class(%OAuth2.Utils).TimeInSeconds(ts,0)

    Set sigJOSE = {}

    Set sigJOSE.alg = "RS384"

    Set sigJOSE.typ = "JWT"

    Set header = sigJOSE.%ToJSON()

    Set claims = {}

    Set claims.iss = "863e73c5-9839-4b54-8205-c9404d2bb762"

    Set claims.sub = claims.iss

    Set claims.aud = "https://fhir.epic.com/interconnect-fhir-oauth/oauth2/token"

    Set claims.jti = "f9eaafba-2e49-11ea-8880-5ce0c5aee679"

    Set claims.exp = exp

    Set claims.nbf = nbf

    Set claims.iat = iat

    Set payload = claims.%ToJSON()

    //Set sigJWKS = ..MyKeys()

    //Set encJWKS = ""

    //Set tSC = ##class(%Net.JSON.JWT).Create(sigJOSE,{},claims,sigJWKS,encJWKS,.JWT)

    //Do $System.Status.DisplayError(tSC)

    Set bitLength = 384

    Set flags = 0

    Set tData = ##class(%SYSTEM.Encryption).Base64Encode(header,flags)_"."_##class(%SYSTEM.Encryption).Base64Encode(payload,flags)

    Set key = ..PrivateKey()

    //Set privKeyPassword = ""

    Set signature = ##class(%SYSTEM.Encryption).RSASHA3Sign(bitLength, tData, key)

    Set jwt = tData_"."_##class(%SYSTEM.Encryption).Base64Encode(signature,flags)

    Set pad = "="

    Set jwt = $Translate(jwt,pad,"")

    Set delim = $Char(13,10)

    For ii = 1:1:$Length(jwt,delim) {

        Write $Piece(jwt,delim,ii),!

    }

    Quit jwt

}

Oliver Wilms · Nov 20, 2024 go to post

I had generated a signature in variable x. I forgot the next step:

The full JWT is constructed by combining the header, body and signature as follows:

base64urlEncoding(header) + '.' + base64urlEncoding(payload) + '.' + base64urlEncoding(signature)
Oliver Wilms · Nov 13, 2024 go to post

What scheduled tasks do you launch? How do they interact with the Production?

Oliver Wilms · Sep 28, 2024 go to post

I think the problem is that init.sh is not executed. I see it does not have execute permission.

Oliver Wilms · Sep 19, 2024 go to post

I wonder if I can use JOB to invoke a routine and specify a file as the input device. Does anybody know how to do this?