소스 검색

AI提取导出检查

luojiehua 2 달 전
부모
커밋
7f9841047d
3개의 변경된 파일552개의 추가작업 그리고 0개의 파일을 삭제
  1. 246 0
      BaseDataMaintenance/AIUtils/export.py
  2. 76 0
      BaseDataMaintenance/AIUtils/request_qwq_32b.py
  3. 230 0
      BaseDataMaintenance/AIUtils/test_qwq.py

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 246 - 0
BaseDataMaintenance/AIUtils/export.py


+ 76 - 0
BaseDataMaintenance/AIUtils/request_qwq_32b.py

@@ -0,0 +1,76 @@
+#coding:utf8
+# API 端点
+import json
+import requests
+
+url = "http://120.132.118.205:21000/api/generate"
+
+models = {
+    "qwq:32b": "qwq:32b",
+    "deepseek-r1:7b": "deepseek-r1:7b",
+    "deepseek-r1:1.5b": "deepseek-r1:1.5b",
+  }
+
+def request_llm(prompt, model="deepseek-r1:1.5b"):
+    # 请求数据
+    data = {
+        "model": model,
+        "prompt": prompt,
+        "stream": False,
+        'temperature': 0.6,
+        'top_p': 0.95,
+        'min_p': 0,
+        "options": {
+            "num_ctx": 4096
+        }
+    }
+
+    # 发送 POST 请求
+    response = requests.post(url, json=data)
+
+    # 检查响应状态码
+    if response.status_code == 200:
+        result = response.json()
+        return_text = result["response"]
+        return_text = json.dumps(return_text, ensure_ascii=False)
+        return_text = json.loads(return_text)
+        token_count = result["eval_count"]
+        cost_time = result["eval_duration"]
+        cost_time = round(cost_time / 1e9, 2)
+        speed = token_count / cost_time
+        print(f'回答tokens数{token_count}, 耗时{cost_time} s, 速度{speed} tokens/s')
+    else:
+        print(f"请求失败,状态码: {response.status_code},错误信息: {response.text}")
+        return_text = response.text
+    return response.status_code, return_text
+
+
+if __name__ == '__main__':
+
+    a = '''
+#公告内容开始:
+-------------------------------
+%s
+-------------------------------
+#公告内容结束
+##任务开始
+#角色
+招投标信息提取专家
+#工作流程
+1. 通读全文
+2. 找到其中的招标人
+3. 找到其中的中标信息,如中标人所在标段的中标金额
+#规范
+1. 要求提取的招标人和中标人必须是机构实体,如不是,则为""
+2. 招标人是招标公告的业主单位
+3. 中标人必须是该标的中标企业
+4. 标段号是指中标人所中标的包号:如A包则为A,1包则为1
+5. 中标信息中的中标人名称、中标金额和标段号必须和文中的信息对应,如果有多个,则再数组中返回多个
+6. 中标人只需要提取能明确是第一中标人的,如未明确第一中标人的情况下,不应随意提取
+7. 招标人联系方式只提取属于招标人的联系方式,联系电话只需要固话和手机
+8. 项目预算和中标金额返回金额+单位的格式
+#返回结果
+结果返回json格式{"招标信息":{"招标人名称":"","项目预算":"","招标人联系方式":[{"联系人":"","联系电话":""}]},"中标信息":[{"中标人名称":"","中标金额":"":"标段号":""}]}
+    '''
+    code, answer = request_llm(a)
+    print(answer)

+ 230 - 0
BaseDataMaintenance/AIUtils/test_qwq.py

@@ -0,0 +1,230 @@
+
+from BaseDataMaintenance.AIUtils.html2text import html2text_with_tablehtml
+from BaseDataMaintenance.AIUtils.prompts import get_prompt_extract_role
+from BaseDataMaintenance.AIUtils.request_qwq_32b import request_llm
+
+
+a = '''
+<div>
+ <div> 
+  <div> 
+   <div> 
+    <div> 
+     <p><span><a target="_blank" class="markBlue" href="/bdqyhx/236157592858210304.html" style="color: #3083EB !important;text-decoration: underline;">伊犁哈萨克自治州阿勒泰地区水利局</a>关于厨房电动废物处理器的网上超市采购项目</span>(项目编号:<span>2201101000019751305</span>)采购已经结束,现将采购结果公示如下:<br></p> 
+     <div> 
+      <div> 
+       <div> 
+        <div> 
+         <div> 
+          <div> 
+           <div> 
+            <div> 
+             <div> 
+              <p><strong>一、项目信息</strong></p> 
+              <p>项目名称:<span><a target="_blank" class="markBlue" href="/bdqyhx/236157592858210304.html" style="color: #3083EB !important;text-decoration: underline;">伊犁哈萨克自治州阿勒泰地区水利局</a>关于厨房电动废物处理器的网上超市采购项目</span>采购项目</p> 
+              <p>项目编号:<span>2201101000019751305</span></p> 
+              <p>项目联系人:<span>黄玉霞</span></p> 
+              <p>项目联系电话:<span>2310860</span></p> 
+              <p>采购计划文号:</p> 
+              <p>采购计划金额(元):</p> 
+              <p>项目所在行政区划编码:<span>654399</span></p> 
+              <p>项目所在行政区划名称:<span>阿勒泰地区本级</span></p> 
+              <p>报价起止时间:-</p> 
+              <p><strong>二、采购单位信息</strong></p> 
+              <p>采购单位名称:<span><a target="_blank" class="markBlue" href="/bdqyhx/236157592858210304.html" style="color: #3083EB !important;text-decoration: underline;">伊犁哈萨克自治州阿勒泰地区水利局</a></span></p> 
+              <p>采购单位地址:<span>阿勒泰地区</span></p> 
+              <p>采购单位联系人和联系方式:<span>黄玉霞:15022829599</span></p> 
+              <p>采购单位社会统一信用代码或组织机构代码:<span>10503525C</span></p> 
+              <p>采购单位预算编码:<span>173001</span></p> 
+              <p><strong>三、成交信息</strong></p> 
+              <p>成交日期:<span>2025年3月12日</span></p> 
+              <p>总成交金额(元):<span>2350</span>(人民币)</p> 
+              <p>成交供应商名称、联系地址及成交金额:</p> 
+              <p> </p> 
+              <table width="100%"> 
+               <tbody> 
+                <tr width="100%"> 
+                 <td width="25.0%">序号</td> 
+                 <td width="25.0%">成交供应商名称</td> 
+                 <td width="25.0%">成交供应商地址</td> 
+                 <td width="25.0%" colspan="1">成交金额(元)</td> 
+                </tr> 
+                <tr width="100%"> 
+                 <td width="25.0%">1</td> 
+                 <td width="25.0%"><a target="_blank" class="markBlue" href="/bdqyhx/819874897522241536.html" style="color: #3083EB !important;text-decoration: underline;">阿勒泰市得力办公用品</a></td> 
+                 <td width="25.0%">新疆维吾尔自治区阿勒泰地区阿勒泰市解放路14-4号</td> 
+                 <td width="25.0%" colspan="1">2350.0</td> 
+                </tr> 
+               </tbody> 
+              </table> 
+              <p></p> 
+              <p>四、项目用途、简要技术要求及合同履行日期:</p> 
+              <p></p> 
+              <p>五、成交标的名称、规格型号、数量、单价、成交金额:</p> 
+              <p> </p> 
+              <table width="100%"> 
+               <tbody> 
+                <tr width="100%"> 
+                 <td width="12.5%">序号</td> 
+                 <td width="12.5%">标的名称</td> 
+                 <td width="12.5%">品牌</td> 
+                 <td width="12.5%">规格型号</td> 
+                 <td width="12.5%">数量</td> 
+                 <td width="12.5%">单价(元)</td> 
+                 <td width="12.5%">成交金额(元)</td> 
+                 <td width="12.5%" colspan="1">报价明细</td> 
+                </tr> 
+                <tr width="100%"> 
+                 <td width="12.5%">1</td> 
+                 <td width="12.5%">公牛 无型号 厨房电动废物处理器 电源</td> 
+                 <td width="12.5%">公牛/BULL</td> 
+                 <td width="12.5%">无型号</td> 
+                 <td width="12.5%">1</td> 
+                 <td width="12.5%">680.0</td> 
+                 <td width="12.5%">680.0</td> 
+                 <td width="12.5%" colspan="1"></td> 
+                </tr> 
+                <tr width="100%"> 
+                 <td width="12.5%">2</td> 
+                 <td width="12.5%">晨光 APYNB396 折纸/手工纸 信封</td> 
+                 <td width="12.5%">晨光/M&amp;G</td> 
+                 <td width="12.5%">APYNB396</td> 
+                 <td width="12.5%">100</td> 
+                 <td width="12.5%">1.0</td> 
+                 <td width="12.5%">100.0</td> 
+                 <td width="12.5%" colspan="1"></td> 
+                </tr> 
+                <tr width="100%"> 
+                 <td width="12.5%">3</td> 
+                 <td width="12.5%">得力 33350 贴纸</td> 
+                 <td width="12.5%">得力/deli</td> 
+                 <td width="12.5%">33350</td> 
+                 <td width="12.5%">10</td> 
+                 <td width="12.5%">5.0</td> 
+                 <td width="12.5%">50.0</td> 
+                 <td width="12.5%" colspan="1"></td> 
+                </tr> 
+                <tr width="100%"> 
+                 <td width="12.5%">4</td> 
+                 <td width="12.5%">晨光 ABS916EN 票夹/长尾夹 长尾夹/燕尾夹</td> 
+                 <td width="12.5%">晨光/M&amp;G</td> 
+                 <td width="12.5%">ABS916EN</td> 
+                 <td width="12.5%">5</td> 
+                 <td width="12.5%">28.0</td> 
+                 <td width="12.5%">140.0</td> 
+                 <td width="12.5%" colspan="1"></td> 
+                </tr> 
+                <tr width="100%"> 
+                 <td width="12.5%">5</td> 
+                 <td width="12.5%">铼德 8X DVD+R DL 光盘</td> 
+                 <td width="12.5%">铼德/RiTEK</td> 
+                 <td width="12.5%">8X DVD+R DL</td> 
+                 <td width="12.5%">150</td> 
+                 <td width="12.5%">3.0</td> 
+                 <td width="12.5%">450.0</td> 
+                 <td width="12.5%" colspan="1"></td> 
+                </tr> 
+                <tr width="100%"> 
+                 <td width="12.5%">6</td> 
+                 <td width="12.5%">课业本/教学用本 会议记录本</td> 
+                 <td width="12.5%">其他家</td> 
+                 <td width="12.5%">记录本</td> 
+                 <td width="12.5%">20</td> 
+                 <td width="12.5%">8.0</td> 
+                 <td width="12.5%">160.0</td> 
+                 <td width="12.5%" colspan="1"></td> 
+                </tr> 
+                <tr width="100%"> 
+                 <td width="12.5%">7</td> 
+                 <td width="12.5%">威猛先生 洁厕液480 洁厕剂 洁厕液</td> 
+                 <td width="12.5%">威猛先生/Mr Muscle</td> 
+                 <td width="12.5%">洁厕液480</td> 
+                 <td width="12.5%">10</td> 
+                 <td width="12.5%">10.0</td> 
+                 <td width="12.5%">100.0</td> 
+                 <td width="12.5%" colspan="1"></td> 
+                </tr> 
+                <tr width="100%"> 
+                 <td width="12.5%">8</td> 
+                 <td width="12.5%">得力 TJ25 剪刀</td> 
+                 <td width="12.5%">得力/deli</td> 
+                 <td width="12.5%">TJ25</td> 
+                 <td width="12.5%">2</td> 
+                 <td width="12.5%">25.0</td> 
+                 <td width="12.5%">50.0</td> 
+                 <td width="12.5%" colspan="1"></td> 
+                </tr> 
+                <tr width="100%"> 
+                 <td width="12.5%">9</td> 
+                 <td width="12.5%">妙洁 扫把簸箕套装 扫把</td> 
+                 <td width="12.5%">妙洁/magic</td> 
+                 <td width="12.5%">扫把簸箕套装</td> 
+                 <td width="12.5%">2</td> 
+                 <td width="12.5%">48.0</td> 
+                 <td width="12.5%">96.0</td> 
+                 <td width="12.5%" colspan="1"></td> 
+                </tr> 
+                <tr width="100%"> 
+                 <td width="12.5%">10</td> 
+                 <td width="12.5%">泰力 86EL 电源插座</td> 
+                 <td width="12.5%">泰力/TAILI</td> 
+                 <td width="12.5%">86EL</td> 
+                 <td width="12.5%">3</td> 
+                 <td width="12.5%">98.0</td> 
+                 <td width="12.5%">294.0</td> 
+                 <td width="12.5%" colspan="1"></td> 
+                </tr> 
+                <tr width="100%"> 
+                 <td width="12.5%">11</td> 
+                 <td width="12.5%">得力 1268 电子计算器</td> 
+                 <td width="12.5%">得力/deli</td> 
+                 <td width="12.5%">1268</td> 
+                 <td width="12.5%">2</td> 
+                 <td width="12.5%">85.0</td> 
+                 <td width="12.5%">170.0</td> 
+                 <td width="12.5%" colspan="1"></td> 
+                </tr> 
+                <tr width="100%"> 
+                 <td width="12.5%">12</td> 
+                 <td width="12.5%">得力 透明胶带</td> 
+                 <td width="12.5%">得力/deli</td> 
+                 <td width="12.5%">无</td> 
+                 <td width="12.5%">5</td> 
+                 <td width="12.5%">12.0</td> 
+                 <td width="12.5%">60.0</td> 
+                 <td width="12.5%" colspan="1"></td> 
+                </tr> 
+                <tr width="100%"> 
+                 <td width="12.5%">13</td> 
+                 <td width="12.5%">【运费】</td> 
+                 <td width="12.5%"></td> 
+                 <td width="12.5%"></td> 
+                 <td width="12.5%">1</td> 
+                 <td width="12.5%"></td> 
+                 <td width="12.5%">0.0</td> 
+                 <td width="12.5%" colspan="1"></td> 
+                </tr> 
+               </tbody> 
+              </table> 
+              <p></p> 
+              <p>六、其他补充事宜:</p> 
+              <p></p> 
+             </div> 
+            </div> 
+           </div> 
+          </div> 
+         </div> 
+        </div> 
+       </div> 
+      </div> 
+     </div> 
+    </div> 
+   </div> 
+  </div> 
+ </div>
+</div>
+'''
+
+_text = html2text_with_tablehtml(a)
+_text = get_prompt_extract_role(_text)
+print(request_llm(_text,model="deepseek-r1:14b"))

이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.