{
  "@context": {
    "dcterms": "http://purl.org/dc/terms/",
    "dcmitype": "http://purl.org/dc/dcmitype/"
  },
  "dcterms:identifier": [
    "tag:aim-pro.eu,2026:oer/9b5685ec0cd9",
    "https://arxiv.org/abs/2412.14215",
    "arxiv:2412.14215"
  ],
  "dcterms:title": [
    "Generative AI Toolkit -- a framework for increasing the quality of LLM-based applications over their whole life cycle"
  ],
  "dcterms:type": [
    {
      "@id": "dcmitype:Text"
    },
    "preprint"
  ],
  "dcterms:creator": [
    "Jens Kohl",
    "Luisa Gloger",
    "Rui Costa",
    "Otto Kruse",
    "Manuel P. Luitz",
    "David Katz",
    "Gonzalo Barbeito",
    "Markus Schweier",
    "Ryan French",
    "Jonas Schroeder",
    "Thomas Riedl",
    "Raphael Perri",
    "Youssef Mostafa"
  ],
  "dcterms:description": [
    "As LLM-based applications reach millions of customers, ensuring their scalability and continuous quality improvement is critical for success. However, the current workflows for developing, maintaining, and operating (DevOps) these applications are predominantly manual, slow, and based on trial-and-error. With this paper we introduce the Generative AI Toolkit, which automates essential workflows over the whole life cycle of LLM-based applications. The toolkit helps to configure, test, continuously monitor and optimize Generative AI applications such as agents, thus significantly improving quality while shortening release cycles. We showcase the effectiveness of our toolkit on representative use cases, share best practices, and outline future enhancements. Since we are convinced that our Generative AI Toolkit is helpful for other teams, we are open sourcing it on and hope that others will use, forward, adapt and improve"
  ],
  "dcterms:subject": [
    "cs.SE (arxiv)",
    "cs.AI (arxiv)"
  ],
  "dcterms:language": [
    "en"
  ],
  "dcterms:license": [
    {
      "@id": "http://creativecommons.org/licenses/by/4.0/"
    }
  ],
  "dcterms:rights": [
    "CC-BY-4.0 — assessed as OPEN by the harvester's licence gate. Conditions: attribution required. open, permissive"
  ],
  "dcterms:accessRights": [
    "open"
  ],
  "dcterms:format": [
    "text/markdown"
  ],
  "dcterms:extent": [
    "68475 bytes (extracted text)"
  ],
  "dcterms:issued": [
    "2024-12-18"
  ],
  "dcterms:provenance": [
    "Retrieved from arXiv on 2026-10-09 in response to the search string “(all:\"artificial intelligence\" OR all:\"machine learning\" OR all:\"generative AI\" OR all:\"deep learning\" OR all:\"reinforcement learning\" OR all:\"large language model\") AND (all:\"AI concepts\" OR all:\"types of AI\" OR all:\"AI fundamentals\" OR all:\"recognizing AI\" OR all:\"recognising AI\" OR all:\"general versus narrow AI\" OR all:\"narrow AI\" OR all:\"general AI\" OR all:\"machine intelligence\" OR all:\"AI strengths and weaknesses\" OR all:\"traditional software\" OR all:\"rule-based systems\" OR all:\"introduction to AI\" OR all:\"introduction to artificial intelligence\" OR all:\"artificial intelligence introduction\" OR all:\"AI primer\" OR all:\"foundations of artificial intelligence\" OR all:\"overview of AI\" OR all:\"understanding AI\" OR all:\"history of AI\" OR all:\"AI essentials\" OR all:\"AI terminology\" OR all:\"metaphors for AI\" OR all:\"AI fundamental concepts\" OR all:\"AI key concepts\" OR all:\"philosophy of AI\" OR all:\"critical AI literacy\")”. arXiv served the resource and is not asserted to be its publisher or author.",
    "Text extracted from latexml-html to Markdown by arxiv-html; the original is retained unchanged beside it."
  ],
  "inferred": {
    "dcterms:references": [
      {
        "value": {
          "@id": "https://arxiv.org/abs/2302.13971",
          "title": "arXiv:2302.13971"
        },
        "method": "inferred",
        "rule": "citation",
        "rule_version": "links/1",
        "evidence": {
          "links": [
            {
              "how": "citation",
              "line": 215,
              "basis": "reference",
              "literal": "arXiv:2302.13971"
            }
          ],
          "kind": "citation"
        }
      },
      {
        "value": {
          "@id": "https://arxiv.org/abs/2307.09288",
          "title": "arXiv:2307.09288"
        },
        "method": "inferred",
        "rule": "citation",
        "rule_version": "links/1",
        "evidence": {
          "links": [
            {
              "how": "citation",
              "line": 216,
              "basis": "reference",
              "literal": "arXiv:2307.09288"
            }
          ],
          "kind": "citation"
        }
      },
      {
        "value": {
          "@id": "https://arxiv.org/abs/2203.15556",
          "title": "arXiv:2203.15556"
        },
        "method": "inferred",
        "rule": "citation",
        "rule_version": "links/1",
        "evidence": {
          "links": [
            {
              "how": "citation",
              "line": 217,
              "basis": "reference",
              "literal": "arXiv:2203.15556"
            }
          ],
          "kind": "citation"
        }
      },
      {
        "value": {
          "@id": "https://arxiv.org/abs/2306.11644",
          "title": "arXiv:2306.11644"
        },
        "method": "inferred",
        "rule": "citation",
        "rule_version": "links/1",
        "evidence": {
          "links": [
            {
              "how": "citation",
              "line": 218,
              "basis": "reference",
              "literal": "arXiv:2306.11644"
            }
          ],
          "kind": "citation"
        }
      },
      {
        "value": {
          "@id": "https://arxiv.org/abs/2306.01116",
          "title": "arXiv:2306.01116"
        },
        "method": "inferred",
        "rule": "citation",
        "rule_version": "links/1",
        "evidence": {
          "links": [
            {
              "how": "citation",
              "line": 219,
              "basis": "reference",
              "literal": "arXiv:2306.01116"
            }
          ],
          "kind": "citation"
        }
      },
      {
        "value": {
          "@id": "https://arxiv.org/abs/2309.07864",
          "title": "arXiv:2309.07864"
        },
        "method": "inferred",
        "rule": "citation",
        "rule_version": "links/1",
        "evidence": {
          "links": [
            {
              "how": "citation",
              "line": 221,
              "basis": "reference",
              "literal": "arXiv:2309.07864"
            }
          ],
          "kind": "citation"
        }
      },
      {
        "value": {
          "@id": "https://arxiv.org/abs/2307.06435",
          "title": "arXiv:2307.06435"
        },
        "method": "inferred",
        "rule": "citation",
        "rule_version": "links/1",
        "evidence": {
          "links": [
            {
              "how": "citation",
              "line": 224,
              "basis": "reference",
              "literal": "arXiv:2307.06435"
            }
          ],
          "kind": "citation"
        }
      },
      {
        "value": {
          "@id": "https://arxiv.org/abs/2302.01560",
          "title": "arXiv:2302.01560"
        },
        "method": "inferred",
        "rule": "citation",
        "rule_version": "links/1",
        "evidence": {
          "links": [
            {
              "how": "citation",
              "line": 225,
              "basis": "reference",
              "literal": "arXiv:2302.01560"
            }
          ],
          "kind": "citation"
        }
      },
      {
        "value": {
          "@id": "https://arxiv.org/abs/2308.08155",
          "title": "arXiv:2308.08155"
        },
        "method": "inferred",
        "rule": "citation",
        "rule_version": "links/1",
        "evidence": {
          "links": [
            {
              "how": "citation",
              "line": 227,
              "basis": "reference",
              "literal": "arXiv:2308.08155"
            }
          ],
          "kind": "citation"
        }
      },
      {
        "value": {
          "@id": "https://arxiv.org/abs/1804.07461",
          "title": "arXiv:1804.07461"
        },
        "method": "inferred",
        "rule": "citation",
        "rule_version": "links/1",
        "evidence": {
          "links": [
            {
              "how": "citation",
              "line": 230,
              "basis": "reference",
              "literal": "arXiv:1804.07461"
            }
          ],
          "kind": "citation"
        }
      },
      {
        "value": {
          "@id": "https://arxiv.org/abs/2308.04624",
          "title": "arXiv:2308.04624"
        },
        "method": "inferred",
        "rule": "citation",
        "rule_version": "links/1",
        "evidence": {
          "links": [
            {
              "how": "citation",
              "line": 231,
              "basis": "reference",
              "literal": "arXiv:2308.04624"
            }
          ],
          "kind": "citation"
        }
      },
      {
        "value": {
          "@id": "https://arxiv.org/abs/2206.15030",
          "title": "arXiv:2206.15030"
        },
        "method": "inferred",
        "rule": "citation",
        "rule_version": "links/1",
        "evidence": {
          "links": [
            {
              "how": "citation",
              "line": 233,
              "basis": "reference",
              "literal": "arXiv:2206.15030"
            }
          ],
          "kind": "citation"
        }
      },
      {
        "value": {
          "@id": "https://arxiv.org/abs/2104.07567",
          "title": "arXiv:2104.07567"
        },
        "method": "inferred",
        "rule": "citation",
        "rule_version": "links/1",
        "evidence": {
          "links": [
            {
              "how": "citation",
              "line": 235,
              "basis": "reference",
              "literal": "arXiv:2104.07567"
            }
          ],
          "kind": "citation"
        }
      },
      {
        "value": {
          "@id": "https://arxiv.org/abs/2307.15043",
          "title": "arXiv:2307.15043"
        },
        "method": "inferred",
        "rule": "citation",
        "rule_version": "links/1",
        "evidence": {
          "links": [
            {
              "how": "citation",
              "line": 238,
              "basis": "reference",
              "literal": "arXiv:2307.15043"
            }
          ],
          "kind": "citation"
        }
      },
      {
        "value": {
          "@id": "https://arxiv.org/abs/2108.07258",
          "title": "arXiv:2108.07258"
        },
        "method": "inferred",
        "rule": "citation",
        "rule_version": "links/1",
        "evidence": {
          "links": [
            {
              "how": "citation",
              "line": 247,
              "basis": "reference",
              "literal": "arXiv:2108.07258"
            }
          ],
          "kind": "citation"
        }
      },
      {
        "value": {
          "@id": "https://arxiv.org/abs/2310.03714",
          "title": "arXiv:2310.03714"
        },
        "method": "inferred",
        "rule": "citation",
        "rule_version": "links/1",
        "evidence": {
          "links": [
            {
              "how": "citation",
              "line": 249,
              "basis": "reference",
              "literal": "arXiv:2310.03714"
            }
          ],
          "kind": "citation"
        }
      },
      {
        "value": {
          "@id": "https://arxiv.org/abs/2411.03350",
          "title": "arXiv:2411.03350"
        },
        "method": "inferred",
        "rule": "citation",
        "rule_version": "links/1",
        "evidence": {
          "links": [
            {
              "how": "citation",
              "line": 254,
              "basis": "reference",
              "literal": "arXiv:2411.03350"
            }
          ],
          "kind": "citation"
        }
      },
      {
        "value": {
          "@id": "https://arxiv.org/abs/2407.21075",
          "title": "arXiv:2407.21075"
        },
        "method": "inferred",
        "rule": "citation",
        "rule_version": "links/1",
        "evidence": {
          "links": [
            {
              "how": "citation",
              "line": 255,
              "basis": "reference",
              "literal": "arXiv:2407.21075"
            }
          ],
          "kind": "citation"
        }
      }
    ]
  }
}