Skip to content

Instantly share code, notes, and snippets.

View pietz's full-sized avatar

Paul-Louis Pröve pietz

  • Vice President AI @ WorkGenius
  • Hamburg, Germany
View GitHub Profile
@pietz
pietz / AGENTS.md
Last active October 12, 2026 12:12
Global agent instructions, version 1.0.5

Operational Model

The user sets the destination; you plan the route and drive.

  • Own the momentum. The user should not have to supply the next step or ask “what’s next?” Never end a turn while in-scope, unblocked work remains, or with an offer to do work you could just do. Answer questions and report progress in stride.
  • Handle ordinary decisions and obvious improvements yourself; do them and report them. Bring consequential decisions and genuine toss-ups to the user with your recommendation.
  • Ask before destructive, security-sensitive, or consequential external actions unless clearly authorized.
  • Resolve ambiguity yourself when it’s minor and reversible, or when a quick look or experiment can settle it. When the answer depends on the user’s intent or information you cannot obtain, finish the unblocked work, then ask with your recommendation.
@pietz
pietz / resume.json
Last active May 25, 2025 19:15
Resume of Paul-Louis Pröve
{
"meta": {
"theme": "professional"
},
"basics": {
"name": "Paul-Louis Pröve",
"label": "AI Engineer, Strategy Consultant & Software Developer",
"email": "mail@plpp.de",
"url": "https://pietz.ai",
"summary": "Paul is a seasoned AI engineer and strategic consultant with 8 years of experience in the field. He specializes in helping organizations leverage artificial intelligence to drive innovation. With extensive experience in GenAI, strategy consulting and cloud-based solutions, he has guided projects across multiple industries and company scales. Paul has led numerous initiatives ranging from Computer Vision research to scaling machine learning applications for enterprise use. His project portfolio includes developing voice assistants, complex agentic systems, autonomous drones, and predictive maintenance systems. Previously, Paul served as the CEO and Head of AI at Tensora GmbH, further refining his strategic consulting skills. By combining deep technical expertise with business
@pietz
pietz / model.py
Created December 19, 2023 13:30
pydantic model for CV data extraction
class Job(BaseModel):
"""A Job or position extracted from the resume"""
position: str = Field(..., description="Name of the position")
company: str = Field(..., description="Company name")
start_date: str = Field(None, description="Start date of the job")
end_date: str = Field(None, description="End date of the job or 'Present'")
top_keywords: list[str] = Field(None, description="List of max. top 10 keywords, skills and technologies used for the job")
class Degree(BaseModel):
"""Degree or other type of education extracted from the resume"""
@pietz
pietz / schema.py
Created November 5, 2023 13:42
Create a Pydantic Model from a JSON schema
class Schema(BaseModel):
title: str = "Model"
type: Any
properties: Optional[dict[str, Any]]
required: Optional[list[str]]
items: Optional['Schema']
description: Optional[str]
@validator('type', pre=True)
def map_type(cls, v):
@pietz
pietz / main.py
Created June 4, 2023 15:52
Azure Function + FastAPI + ONNX
# __init__.py
# import logging
# import azure.functions as func
# from main.app import app
# def main(req: func.HttpRequest, context: func.Context) -> func.HttpResponse:
# logging.info("Python HTTP trigger function processed a request.")
# return func.AsgiMiddleware(app).handle(req, context)
@pietz
pietz / mlflow_score_script.py
Created July 22, 2022 07:07
Scoring script for Azure ML that can be used to run inference of mlflow models
import json
import logging
import numpy as np
import os
from copy import deepcopy
from inference_schema.parameter_types.abstract_parameter_type import AbstractParameterType
from inference_schema.parameter_types.numpy_parameter_type import NumpyParameterType
from inference_schema.parameter_types.standard_py_parameter_type import StandardPythonParameterType
from inference_schema.schema_decorators import input_schema, output_schema
import re
from unidecode import unidecode
def fingerprint(string):
# change all characters to their lowercase representation
string = string.lower()
# remove all punctuation and control characters
string = re.sub("[^A-Za-z0-9 ]+", "", string)
# normalize extended western characters to their ASCII representation
@pietz
pietz / draw_det.py
Created September 28, 2018 08:52
Take a YOLO style detection mask, convert it to a pixel mask and visualize it.
def draw_det(det, size=256):
g = float(len(det))
msk = np.zeros((size,size))
for col in range(det.shape[0]):
for row in range(det.shape[1]):
p,x,y,w,h = det[col,row]
if p > 0.5:
l = int(size*(col/g+x/g-w/2))
r = int(size*(col/g+x/g+w/2))
t = int(size*(row/g+y/g-h/2))
@pietz
pietz / unet-keras
Created April 14, 2017 09:51
U-Net model for Keras
from keras.models import Input, Model
from keras.layers import Conv2D, Concatenate, MaxPooling2D, Reshape
from keras.layers import UpSampling2D, Dropout, Activation, Permute
def level_block(m, dim, depth, acti):
if depth > 0:
n = Conv2D(dim, (3, 3), activation=acti, padding='same')(m)
n = Conv2D(dim, (3, 3), activation=acti, padding='same')(n)
m = MaxPooling2D((2, 2))(n)
m = level_block(m, 2*dim, depth-1, acti)

Keybase proof

I hereby claim:

  • I am pietz on github.
  • I am pietz (https://keybase.io/pietz) on keybase.
  • I have a public key whose fingerprint is B668 2EB3 A046 60D6 F991 E6D5 5257 CB68 A459 B6C5

To claim this, I am signing this object: