当前位置: 首页 > news >正文

ai调用excel整理板厚,零件,预计板耗信息保存为json

把llm对话开放到内网-CSDN博客

sse mcp flask 开放mcp服务到内网-CSDN博客

#get_thick_part_json.py
import json
import re
import requests
import os
import logging
from flask import Flask, request, jsonify# 配置日志
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)app = Flask(__name__)@app.route('/process_excel', methods=['GET'])
def process_excel_api():"""处理Excel文件并发送给AI服务的API接口---parameters:- name: filepathin: querytype: stringrequired: truedescription: Excel文件路径- name: sheet_namein: querytype: stringrequired: falsedefault: 零件清单description: 工作表名称responses:200:description: 成功处理400:description: 请求参数错误500:description: 服务器内部错误"""# 获取查询参数filepath = request.args.get('filepath')sheet_name = request.args.get('sheet_name', '零件清单')# 检查必需参数if not filepath:return jsonify({"error": "缺少必需参数: filepath"}), 400try:# 第一步:从Excel获取数据excel_url = "http://localhost:5000/read_excel"# 对URL参数进行编码params = {"filepath": filepath,"sheet_name": sheet_name}# 获取Excel数据excel_response = requests.get(excel_url, params=params)excel_response.raise_for_status()excel_data = excel_response.json()# 提取板厚和构件信息extracted_info = excel_data# 在获取excel_memory之前,先从环境变量或配置中获取该信息excel_memory = os.environ.get('excel_memory', '')ai_message_content = f"""请从以下Excel数据中提取板厚,编号,数量和构件信息,以及需要平方米的板,并按照指定格式返回JSON,使用[START_JSON]和[END_JSON]标记框起JSON部分。特别注意:请将零件按照厚度进行分组。关于材料的一些记忆信息:{excel_memory}示例格式:[START_JSON]{{"thickness_groups": [{{"thickness": "10mm","area_required": 2.5,"components": [{{"part_name": "零件A","quantity": 5,"thickness": "10mm"}}]}}]}}[END_JSON]Excel数据:{json.dumps(extracted_info, ensure_ascii=False)}"""# 第二步:使用POST请求发送数据给AI服务,避免URL过长问题ai_url = "http://localhost:5003/chat"ai_payload = {"messages": [{"role": "user","content": ai_message_content}],"tools":  None}# 发送POST请求到AI服务ai_response = requests.post(ai_url, json=ai_payload)ai_response.raise_for_status()# 解析AI响应ai_response_data = ai_response.json()ai_content = ai_response_data['choices'][0]['message']['content']# 从AI响应中提取被标记框起的JSONjson_pattern = r'\[START_JSON\]\s*(.*?)\s*\[END_JSON\]'match = re.search(json_pattern, ai_content, re.DOTALL)structured_data = Noneif match:try:json_content = match.group(1).strip()logger.info(f"提取到的JSON内容: {json_content}")# 将提取的JSON字符串解析为Python对象structured_data = json.loads(json_content)logger.info("JSON解析成功")# 保存解析出的JSON到文件save_path = os.path.join(os.getcwd(), 'ai_parsed_result.json')with open(save_path, 'w', encoding='utf-8') as f:json.dump(structured_data, f, ensure_ascii=False, indent=2)logger.info(f"结果已保存至: {save_path}")except json.JSONDecodeError as json_err:logger.error(f"JSON解析失败: {json_err}")logger.error(f"尝试解析的内容: {json_content}")passexcept Exception as save_err:logger.error(f"保存文件时出错: {save_err}")passelse:logger.warning("未在AI响应中找到JSON标记")# 返回处理后的数据return jsonify({"status": "success",# "excel_data": excel_data,"structured_data": structured_data  # 已解析的结构化数据})except requests.exceptions.RequestException as e:logger.error(f"请求出错: {str(e)}")return jsonify({"error": f"请求出错: {str(e)}"}), 500except json.JSONDecodeError as e:logger.error(f"JSON解析出错: {str(e)}")return jsonify({"error": f"JSON解析出错: {str(e)}"}), 500except Exception as e:logger.error(f"处理过程中出错: {str(e)}")return jsonify({"error": f"处理过程中出错: {str(e)}"}), 500@app.route('/health', methods=['GET'])
def health_check():"""健康检查接口"""return jsonify({"status": "healthy"})if __name__ == "__main__":app.run(host='0.0.0.0', port=5001, debug=True)

http://www.dtcms.com/a/453647.html

相关文章:

  • PyCharm 2025:最新图文教程!
  • Docker 实战教程(7) | 镜像管理和仓库操作
  • 百度快照抓取的是网站哪里的内容建站公司怎么接单
  • 江苏省建设工程竣工备案网站网站结构优化包括哪些
  • open manus实战:生成一个贪吃蛇游戏
  • 制作销售网站清浦网站建设
  • 建站为应用技术长沙有实力的关键词优化价格
  • 内网隧道突破:红队实战指南
  • 宿州北京网站建设保亭网站建设
  • Java-142 深入浅出 MySQL Spring事务失效的常见场景与解决方案详解(4)
  • 网站优化培训好学吗公司网站变更域名
  • 【开题答辩全过程】以 安全电子选举系统的设计与实现为例,包含答辩的问题和答案
  • ESP32项目(三、控制继电器,伺服电机,舵机)
  • Python 3 内置函数详解
  • Spring AI快速入门以及项目的创建
  • 微网站制作工具有哪些霞浦建设局总规网站
  • 免费微商城网站建设网站开发团队人员构成
  • 个人网页简单模板下载seo是怎么优化的
  • 杭州有实力的网站开发直接通过域名访问wordpress
  • 多目标识别YOLO :YOLOV3 原理
  • 【Qt】QSS
  • 反射还是代码生成?Go反射使用的边界与取舍|Go语言进阶(11)
  • 国际外贸网站建设前端自适应模板
  • 网站建设代码流程花店网站建设个人小结
  • 德阳建设公司网站网站制作里的更多怎么做
  • HandBrake:视频压缩工具
  • 建设部门的网站wordpress图片批量上传插件下载
  • 致远OA配置HTTPS访问避坑帖
  • 快速搭建网站视频wordpress托管在哪里
  • AssemblyScript 入门教程(5):深入理解 TypedArray