KI-Fallstudie: Implementierung eines Echtzeit-Finanznachrichten-Agenten - Teil 3: Bildschirmtext-Extraktion

published on March 28, 2025

Bild einer Finanznachrichtensendung mit einer Eilmeldung über eine Exekutivanordnung

Dieser Artikel ist Teil 3 einer Artikelserie über die Implementierung eines Echtzeit-Finanznachrichten-Agenten. Hier finden Sie den Überblick des Projekts: KI-Fallstudie: Implementierung eines Echtzeit-Finanznachrichten-Agenten - Überblick

Überblick

In diesem Teil werden wir den Bildschirm erfassen und den Text vom Bildschirm extrahieren.

Extraktionscode:

import ollama

system_message = """Only extract the text from the image.

response in JSON in the format:

an Array (top level key result) with objects for each found text

the objects have the keys:
- type: <headline/name_tag/displayed_document/quoted_text/date_time_tag>
- text: <the text>

{
result:[
    {
      "type": "name_tag",
      "text": "Donald Trump"
    },
    {
      "type": "headline",
      "text": "New Tariffs on cars. 25%"
    }
]
}

Important that the top level is an array


"""


for i in range(0,100):

    response = ollama.chat(
        model='gemma3:4b',
        format="json",    
        messages=[
        {
            'role': 'system',
            'content': system_message,
        },   
        {
            'role': 'user',
            'content': 'What is in this image?',
            'images': ['./resources/trump-executive-order.png']
        }]
    )
    
    print(response['message']['content'])

Beispiel - Extrahierter Text aus dem obigen Bild:


{
  "result":[
    {
      "type": "headline",
      "text": "PRESIDENT TRUMP SIGNS EXECUTIVE ORDERS IN THE OVAL OFFICE, TAKES QUESTIONS WITH ELON MUSK"
    },
    {
      "type": "date_time_tag",
      "text": "FEBRUARY 11, 2025"
    }
  ]
}

Auf unserer Tesla P40 GPU benötigt es 1,5 Sekunden, um den Text aus dem Bild mit dem gemma3:4b-Modell zu extrahieren. Es verbraucht nur etwa 5 GB VRAM, sodass wir zwei oder drei Instanzen gleichzeitig ausführen können. Das bedeutet, ein analysierter Frame pro Sekunde ist möglich.

Später werden wir diesen Extraktionsmechanismus in unseren Bildschirmerfassungscode aus Teil 2 integrieren. Bleiben Sie dran für den nächsten Teil.


HAFTUNGSAUSSCHLUSS: Der bereitgestellte Code stellt in Bezug auf Sicherheit und Stabilität keine produktionsreife Einrichtung dar.
Der gesamte in diesem Tutorial vorgestellte Code wird auf eigenes Risiko verwendet.
Denken Sie immer daran, Sicherheitsaudits durchzuführen, bevor Sie jeglichen Code in die Produktion übernehmen.

Darüber hinaus sollte kein Teil der Tutorials oder des Code-Inhalts als Finanzberatung betrachtet werden.
Konsultieren Sie immer einen professionellen Anlageberater, bevor Sie Anlageentscheidungen treffen.


Bei CorticalFlow ist die Erweiterung der kognitiven Fähigkeiten des Benutzers unsere Mission.


At CorticalFlow expanding the cognitive ability of the user is our mission.

Disclaimer

The provided code does not present a production ready setup in regards of security and stability. All code presented in this tutorial is used under your own risk. Consider always security audits before you put any code in production.

None of the parts of the tutorials or code content should be considered as financial advice. Always consult a professional investment Advisor before taking an investment.