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

coze智能体后端接入问题:

是否一定要按照coze官方API文档格式调用?

不一定:以下面代码为例(给了注释)

@app.route('/compare_models', methods=['POST'])
def compare_models():print("收到 compare_models 请求!")
#begin-这一部分代码作用:从前端接收参数  也就是前端输入的数据通过按钮发送data = request.jsonmodel1 = data.get('model1', '')model2 = data.get('model2', '')scene = data.get('scene', '')budget = data.get('budget', '')requirement = data.get('requirement', '')
#end-user_message = (f"请帮我综合对比两个大模型,并结合参数给出推荐和详细分析:\n"f"模型一:{model1}\n"f"模型二:{model2}\n"f"应用场景:{scene}\n"f"预算:{budget}元\n"f"性能要求:{requirement}\n""请说明理由,逐条对比优劣,最后推荐一个更合适的模型,并说明推荐理由。请用自然语言详细分点方式直接文本回复,不要以插件或JSON结构返回,不要只给出总结。")#begin- 构造Coze官方API所需的请求体(官方API调用文档:https://www.coze.cn/open/docs/developer_guides/chat)headers = {'Authorization': f'Bearer {COZE_API_KEY}','Content-Type': 'application/json'}payload = {'bot_id': COZE_BOT_ID,'user': 'user_001','query': user_message}#end-#begin- 用 requests转发到 Coze官方APIresponse = requests.post(COZE_API_URL, headers=headers, json=payload)data = response.json()#end-#begin- 解析官方API的返回结果messages = data.get("messages", [])#end-print("COZE messages:", messages)collected_chunks = []final_reply = ""for msg in messages:raw_content = msg.get("content", "")try:parsed_outer = json.loads(raw_content)msg_type = parsed_outer.get("msg_type", "")inner_data_str = parsed_outer.get("data", "")if msg_type != "knowledge_recall":final_reply = parsed_outer.get("content", raw_content)breakelse:if inner_data_str:parsed_inner = json.loads(inner_data_str)chunks = parsed_inner.get("chunks", [])if isinstance(chunks, list) and len(chunks) > 0:for chunk in chunks:collected_chunks.append(chunk.get("content", ""))except (ValueError, json.JSONDecodeError):final_reply = raw_contentbreakif not final_reply and collected_chunks:final_reply = "".join(collected_chunks)if not final_reply:final_reply = "对不起,暂时无法获取有效回复。"# 结构化内容处理try:parsed = json.loads(final_reply)if isinstance(parsed, dict):if 'arguments' in parsed and 'keyword' in parsed['arguments']:final_reply = parsed['arguments']['keyword']elif 'content' in parsed:final_reply = parsed['content']else:final_reply = json.dumps(parsed, ensure_ascii=False, indent=2)except Exception:pass# 统一做文本清理final_reply = re.sub(r'(\^*来源[::]?.*?\^*)', '', final_reply, flags=re.IGNORECASE)final_reply = final_reply.strip()return jsonify({'reply': final_reply})

http://www.lqws.cn/news/173899.html

相关文章:

  • 基于 actix-web 框架的简单 demo
  • 前端项目初始化
  • ant-design4.xx实现数字输入框; 某些输入法数字需要连续输入两次才显示
  • 前端关于position: sticky
  • 大数据量高实时性场景下订单生成的优化方案
  • NoSQL 之Redis哨兵
  • HarmonyOS运动开发:如何用mpchart绘制运动配速图表
  • Imprompter: Tricking LLM Agents into Improper Tool Use
  • 佰力博科技与您探讨材料介电性能测试的影响因素
  • 使用vsftpd搭建FTP服务器(TLS/SSL显式加密)
  • 手机如何防止ip关联?3种低成本方案
  • CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云
  • 数学:数的概念是如何发展的?
  • Python训练营打卡 Day46
  • 现代Web安全实践:基于Token与Refresh Token的单点登录(SSO)实现
  • C++11 右值引用:从入门到精通
  • 博弈论概述
  • 深入解析Java中的装箱与拆箱机制
  • Mysql中select查询语句的执行过程
  • SpringBoot 自动化部署实战:CI/CD 整合方案与避坑指南
  • 深克隆java对象的方式
  • 基于 Vue 和 Spring Boot 实现滑块验证码的机器验证
  • 【Linux】awk 命令详解及使用示例:结构化文本数据处理工具
  • python训练营打卡第46天
  • 打造你的 Android 图像编辑器:深入解析 PhotoEditor 开源库
  • windows server 添加自动启动服务
  • 使用阿里云百炼embeddings+langchain+Milvus实现简单RAG
  • PostgreSQL17 编译安装+相关问题解决
  • KAG与RAG在医疗人工智能系统中的多维对比分析
  • 完美搭建appium自动化环境