Files
panda 4b43c5d3e4 feat: LangGraph工作流核心 — Agent状态/节点/图 + 验证服务 + 知识库
agent/
  state.py: AgentState TypedDict(20字段含意图/压缩/会话/撤销)
  nodes.py: 17个节点函数(生成/修改/验证/纠错/意图分类/压缩/撤销/重置)
  graph.py: 17节点状态图,8意图路由分发

验证服务 validation_service/
  main.py: FastAPI服务,lxml XSD验证 + 结构化检查(字段引用/SQL/尺寸)

数据 data/
  sample_templates/: 4个JRXML示例模板
  corrections/: 3个错误修正案例

脚本 scripts/
  init_kb.py: Chroma知识库初始化
2026-05-14 23:21:10 +08:00

80 lines
3.6 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd"
name="InventoryList" pageWidth="595" pageHeight="842" columnWidth="555"
leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20">
<queryString>
<![CDATA[SELECT item_code, item_name, category, quantity, unit_price FROM inventory ORDER BY category, item_name]]>
</queryString>
<field name="item_code" class="java.lang.String"/>
<field name="item_name" class="java.lang.String"/>
<field name="category" class="java.lang.String"/>
<field name="quantity" class="java.lang.Integer"/>
<field name="unit_price" class="java.math.BigDecimal"/>
<title>
<band height="50">
<staticText>
<reportElement x="0" y="10" width="555" height="30"/>
<textElement textAlignment="Center">
<font size="16" isBold="true"/>
</textElement>
<text><![CDATA[Inventory List]]></text>
</staticText>
</band>
</title>
<columnHeader>
<band height="25">
<staticText>
<reportElement x="0" y="0" width="100" height="20"/>
<textElement><font isBold="true"/></textElement>
<text><![CDATA[Code]]></text>
</staticText>
<staticText>
<reportElement x="110" y="0" width="180" height="20"/>
<textElement><font isBold="true"/></textElement>
<text><![CDATA[Item Name]]></text>
</staticText>
<staticText>
<reportElement x="300" y="0" width="100" height="20"/>
<textElement><font isBold="true"/></textElement>
<text><![CDATA[Category]]></text>
</staticText>
<staticText>
<reportElement x="410" y="0" width="70" height="20"/>
<textElement><font isBold="true"/></textElement>
<text><![CDATA[Qty]]></text>
</staticText>
<staticText>
<reportElement x="485" y="0" width="70" height="20"/>
<textElement><font isBold="true"/></textElement>
<text><![CDATA[Price]]></text>
</staticText>
</band>
</columnHeader>
<detail>
<band height="20">
<textField>
<reportElement x="0" y="0" width="100" height="20"/>
<textFieldExpression><![CDATA[$F{item_code}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="110" y="0" width="180" height="20"/>
<textFieldExpression><![CDATA[$F{item_name}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="300" y="0" width="100" height="20"/>
<textFieldExpression><![CDATA[$F{category}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="410" y="0" width="70" height="20"/>
<textFieldExpression><![CDATA[$F{quantity}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="485" y="0" width="70" height="20"/>
<textFieldExpression><![CDATA[$F{unit_price}]]></textFieldExpression>
</textField>
</band>
</detail>
</jasperReport>