<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Talend Agentic AI Code Quality Framework - Must have for every Project!! in Talend Studio</title>
    <link>https://community.qlik.com/t5/Talend-Studio/Talend-Agentic-AI-Code-Quality-Framework-Must-have-for-every/m-p/2543266#M149414</link>
    <description>&lt;P&gt;Hey, I wanted to test this but I think you're missing the requirements.txt file to setup the env&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;- Quentin&lt;/P&gt;</description>
    <pubDate>Wed, 18 Feb 2026 14:01:29 GMT</pubDate>
    <dc:creator>quentin-vigne</dc:creator>
    <dc:date>2026-02-18T14:01:29Z</dc:date>
    <item>
      <title>Talend Agentic AI Code Quality Framework - Must have for every Project!!</title>
      <link>https://community.qlik.com/t5/Talend-Studio/Talend-Agentic-AI-Code-Quality-Framework-Must-have-for-every/m-p/2521901#M147667</link>
      <description>&lt;DIV class=""&gt;&lt;FONT face="lucida sans unicode,lucida sans" size="5"&gt;Talend AI Code Quality Framework&lt;/FONT&gt;&lt;/DIV&gt;&lt;P&gt;This project automates detection and fixing of Talend job design issues using YAML-based rules,&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;.item&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;job files, and Open Router LLMs (GPT-based). It supports zipped jobs, generates CSV reports, and shows beautifully formatted CLI output.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;It Include 10 Production Ready jobs already. Just plug and play. Understand then Reuse.&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;This project is an AI adaption of my previous one - &lt;A href="https://community.qlik.com/t5/Talend-Studio/Talend-Code-Quality-Framework-check-it-out/m-p/2351299#M117976" target="_blank" rel="noopener"&gt;Qlik Community&lt;/A&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Link to Github Repo -&amp;nbsp;&lt;A href="https://github.com/SouravRoy-ETL/talend-agentic-ai-linter" target="_blank" rel="noopener"&gt;Github&lt;/A&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Connect with me for suggestions/feedback - &lt;A href="https://www.linkedin.com/in/souravetl/" target="_self"&gt;LinkedIn&lt;/A&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;HR /&gt;&lt;DIV class=""&gt;&lt;span class="lia-unicode-emoji" title=":movie_camera:"&gt;🎥&lt;/span&gt;Demo Video&lt;/DIV&gt;&lt;P&gt;&lt;A title="Watch" href="https://www.youtube.com/watch?v=H0oVfQjiWkk" target="_blank" rel="noopener"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Sourav_Roy_0-1750605603795.jpeg" style="width: 400px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/181522i1375D144BF7D4BA3/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Sourav_Roy_0-1750605603795.jpeg" alt="Sourav_Roy_0-1750605603795.jpeg" /&gt;&lt;/span&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://www.youtube.com/watch?v=H0oVfQjiWkk" target="_blank" rel="noopener"&gt;https://www.youtube.com/watch?v=H0oVfQjiWkk&lt;/A&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;See the full agentic Talend LLM quality fixer in action!&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;DIV class=""&gt;&lt;span class="lia-unicode-emoji" title=":white_heavy_check_mark:"&gt;✅&lt;/span&gt;50+ Production-Grade Code Quality Checks&lt;/DIV&gt;&lt;P&gt;This framework supports&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;50+ scalable, production-level rule checks&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;tailored for enterprise Talend pipelines.&lt;BR /&gt;These cover:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;span class="lia-unicode-emoji" title=":locked_with_key:"&gt;🔐&lt;/span&gt;Context misuse &amp;amp; variable scope&lt;/LI&gt;&lt;LI&gt;🧱 Schema issues, nulls, and defaults&lt;/LI&gt;&lt;LI&gt;&lt;span class="lia-unicode-emoji" title=":police_car_light:"&gt;🚨&lt;/span&gt;Missing error handling (e.g., tDie, tWarn)&lt;/LI&gt;&lt;LI&gt;🪝 Unused metadata &amp;amp; dead code&lt;/LI&gt;&lt;LI&gt;&lt;span class="lia-unicode-emoji" title=":cyclone:"&gt;🌀&lt;/span&gt;Infinite loop detection &amp;amp; unsafe joins&lt;/LI&gt;&lt;LI&gt;&lt;span class="lia-unicode-emoji" title=":direct_hit:"&gt;🎯&lt;/span&gt;Naming conventions, error propagation, subjob limits, and more&lt;/LI&gt;&lt;/UL&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;All rules are YAML-defined and support both&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;auto&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;fix and LLM-assisted suggestions.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;DIV class=""&gt;&lt;span class="lia-unicode-emoji" title=":rocket:"&gt;🚀&lt;/span&gt;How to Run&lt;/DIV&gt;&lt;OL&gt;&lt;LI&gt;&lt;STRONG&gt;Place your zipped Talend Jobs&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;into:&lt;/LI&gt;&lt;/OL&gt;&lt;DIV class=""&gt;&lt;PRE&gt;zipped_jobs/&lt;/PRE&gt;&lt;DIV class=""&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;OL&gt;&lt;LI&gt;&lt;STRONG&gt;Run the full pipeline (after placing your real zipped Talend jobs inside&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;zipped_jobs/):&lt;/STRONG&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;DIV class=""&gt;&lt;PRE&gt;python talend_AgenticAI_SouraV1.py --verbose&lt;/PRE&gt;&lt;DIV class=""&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;This will:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;span class="lia-unicode-emoji" title=":white_heavy_check_mark:"&gt;✅&lt;/span&gt;Validate rule YAMLs&lt;/LI&gt;&lt;LI&gt;&lt;span class="lia-unicode-emoji" title=":white_heavy_check_mark:"&gt;✅&lt;/span&gt;Extract&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;.item&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;files to&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;jobs/&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;from nested zips&lt;/LI&gt;&lt;LI&gt;&lt;span class="lia-unicode-emoji" title=":white_heavy_check_mark:"&gt;✅&lt;/span&gt;Lint and optionally auto-fix violations&lt;/LI&gt;&lt;LI&gt;&lt;span class="lia-unicode-emoji" title=":white_heavy_check_mark:"&gt;✅&lt;/span&gt;Query LLM for unresolved issues&lt;/LI&gt;&lt;LI&gt;&lt;span class="lia-unicode-emoji" title=":white_heavy_check_mark:"&gt;✅&lt;/span&gt;Save results to&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;fixed/&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;reports/fix_summary_report.csv&lt;/LI&gt;&lt;/UL&gt;&lt;HR /&gt;&lt;DIV class=""&gt;&lt;span class="lia-unicode-emoji" title=":locked_with_key:"&gt;🔐&lt;/span&gt;OpenRouter API Key Setup&lt;/DIV&gt;&lt;OL&gt;&lt;LI&gt;&lt;P&gt;Visit&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://openrouter.ai/" target="_blank" rel="nofollow noopener"&gt;https://openrouter.ai/&lt;/A&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;Sign in and generate an API key from:&lt;BR /&gt;&lt;A href="https://openrouter.ai/keys" target="_blank" rel="nofollow noopener"&gt;https://openrouter.ai/keys&lt;/A&gt;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;Copy the API key (starts with&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;sk-or-...)&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;Create a&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;.env&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;file in your project root with:&lt;/P&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;DIV class=""&gt;&lt;PRE&gt;OPENROUTER_API_KEY=sk-or-your-key-here&lt;/PRE&gt;&lt;DIV class=""&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;OL&gt;&lt;LI&gt;Make sure&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;python-dotenv&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;is installed:&lt;/LI&gt;&lt;/OL&gt;&lt;DIV class=""&gt;&lt;PRE&gt;pip install python-dotenv&lt;/PRE&gt;&lt;DIV class=""&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;This allows&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;llm.py&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;to securely load your OpenRouter key at runtime.&lt;/P&gt;&lt;HR /&gt;&lt;DIV class=""&gt;&lt;span class="lia-unicode-emoji" title=":file_folder:"&gt;📁&lt;/span&gt;Project Structure&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;PRE&gt;├── talend_AgenticAI_SouraV1.py              # Main orchestrator script
├── extract_items_with_delay.py     # Extracts `.item` files from zipped_jobs/
├── validate_syntax.py              # Checks YAML rule format
├── src/
│   ├── main.py                     # Linting and fixing engine
│   └── llm.py                      # LLM handler via OpenRouter API
├── rules/                          # YAML rules for code quality
├── zipped_jobs/                    # Input zipped Talend exports
├── jobs/                           # Extracted .item files
├── fixed/                          # Auto-fixed jobs
└── reports/
    └── fix_summary_report.csv      # CSV summary&lt;/PRE&gt;&lt;DIV class=""&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;HR /&gt;&lt;DIV class=""&gt;&lt;span class="lia-unicode-emoji" title=":robot_face:"&gt;🤖&lt;/span&gt;LLM Integration&lt;/DIV&gt;&lt;UL&gt;&lt;LI&gt;&lt;STRONG&gt;Provider:&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;OpenRouter.ai&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;Model:&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;GPT-3.5-Turbo&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;Prompt Example:&lt;/STRONG&gt;&lt;BR /&gt;"Fix violation: {rule description}"&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;Fallback:&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Printed clearly in CLI if LLM fails&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;Confidence Score:&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Low/Medium/High based on length&lt;/LI&gt;&lt;/UL&gt;&lt;HR /&gt;&lt;DIV class=""&gt;&lt;span class="lia-unicode-emoji" title=":package:"&gt;📦&lt;/span&gt;.item Job Extraction Logic&lt;/DIV&gt;&lt;UL&gt;&lt;LI&gt;Looks inside each&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;zipped_jobs/*.zip&lt;/LI&gt;&lt;LI&gt;Recursively searches folders for&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;process/&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;directory&lt;/LI&gt;&lt;LI&gt;Copies&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;.item&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;files to&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;jobs/&lt;/LI&gt;&lt;LI&gt;Adds delay of 1.1s per extraction&lt;/LI&gt;&lt;LI&gt;Logs each job as:&lt;DIV class=""&gt;&lt;PRE&gt;&lt;span class="lia-unicode-emoji" title=":white_heavy_check_mark:"&gt;✅&lt;/span&gt; Extracted job: myJob_0.1.item&lt;/PRE&gt;&lt;DIV class=""&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;HR /&gt;&lt;DIV class=""&gt;&lt;span class="lia-unicode-emoji" title=":bar_chart:"&gt;📊&lt;/span&gt;CSV Report Format&lt;/DIV&gt;&lt;P&gt;job_file rule_id status llm_suggestion confidence myJob.item RULE_036 llm-suggested Defaults in schema don't match data type medium myJob2.item RULE_028 fixed &amp;nbsp; 1.0&lt;/P&gt;&lt;HR /&gt;&lt;DIV class=""&gt;🧠 Features&lt;/DIV&gt;&lt;UL&gt;&lt;LI&gt;&lt;span class="lia-unicode-emoji" title=":speech_balloon:"&gt;💬&lt;/span&gt;GPT suggestions for unresolved issues&lt;/LI&gt;&lt;LI&gt;&lt;span class="lia-unicode-emoji" title=":hammer_and_wrench:"&gt;🛠&lt;/span&gt;Auto-fix for rules with&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;"strategy: auto"&lt;/LI&gt;&lt;LI&gt;&lt;span class="lia-unicode-emoji" title=":counterclockwise_arrows_button:"&gt;🔄&lt;/span&gt;Caching of LLM responses&lt;/LI&gt;&lt;LI&gt;&lt;span class="lia-unicode-emoji" title=":turtle:"&gt;🐢&lt;/span&gt;1.1s throttled file extraction&lt;/LI&gt;&lt;LI&gt;&lt;span class="lia-unicode-emoji" title=":clipboard:"&gt;📋&lt;/span&gt;Emoji-decorated CLI&lt;/LI&gt;&lt;LI&gt;🧪 YAML rule format validation&lt;/LI&gt;&lt;/UL&gt;&lt;HR /&gt;&lt;DIV class=""&gt;🧰 Requirements&lt;/DIV&gt;&lt;UL&gt;&lt;LI&gt;Python 3.9+&lt;/LI&gt;&lt;LI&gt;pip install -r requirements.txt&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;with:&lt;UL&gt;&lt;LI&gt;openai&amp;gt;=1.0.0&lt;/LI&gt;&lt;LI&gt;python-dotenv&lt;/LI&gt;&lt;LI&gt;PyYAML&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;HR /&gt;&lt;DIV class=""&gt;&lt;span class="lia-unicode-emoji" title=":light_bulb:"&gt;💡&lt;/span&gt;Future Ideas&lt;/DIV&gt;&lt;UL&gt;&lt;LI&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Rule-specific enable/disable&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;GUI dashboard for job summaries&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Email report delivery&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;.env&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;setup wizard&lt;/LI&gt;&lt;/UL&gt;</description>
      <pubDate>Sun, 22 Jun 2025 15:30:14 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/Talend-Agentic-AI-Code-Quality-Framework-Must-have-for-every/m-p/2521901#M147667</guid>
      <dc:creator>Sourav_Roy</dc:creator>
      <dc:date>2025-06-22T15:30:14Z</dc:date>
    </item>
    <item>
      <title>Re: Talend Agentic AI Code Quality Framework - Must have for every Project!!</title>
      <link>https://community.qlik.com/t5/Talend-Studio/Talend-Agentic-AI-Code-Quality-Framework-Must-have-for-every/m-p/2543266#M149414</link>
      <description>&lt;P&gt;Hey, I wanted to test this but I think you're missing the requirements.txt file to setup the env&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;- Quentin&lt;/P&gt;</description>
      <pubDate>Wed, 18 Feb 2026 14:01:29 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/Talend-Agentic-AI-Code-Quality-Framework-Must-have-for-every/m-p/2543266#M149414</guid>
      <dc:creator>quentin-vigne</dc:creator>
      <dc:date>2026-02-18T14:01:29Z</dc:date>
    </item>
  </channel>
</rss>

