coze智能体后端接入问题:

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

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

python 复制代码
@app.route('/compare_models', methods=['POST'])
def compare_models():

    print("收到 compare_models 请求!")
#begin-这一部分代码作用:从前端接收参数  也就是前端输入的数据通过按钮发送
    data = request.json
    model1 = 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官方API
    response = 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)
                break
            else:
                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_content
            break

    if 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})
相关推荐
兵慌码乱4 天前
请销假管理系统的分层架构设计与核心模块实现
flask·sqlalchemy·python web·apscheduler·web 系统架构·假期管理系统·审批工作流
zzzzzz3107 天前
当产品经理说这个很简单:我用Python自动化处理奇葩需求的实战指南
python·pycharm·产品经理
TechWayfarer14 天前
苏超赛事网站安全防护:WAF、DDoS与仿冒页面如何联动治理
网络·python·安全·flask·ddos
vortex514 天前
新手前后端开发学习指南:从Flask框架到全栈实践
后端·python·flask
你是个什么橙14 天前
Python入门学习1:安装配置开发环境——Python或Annaconda,Pycharm
python·学习·pycharm
叫我:松哥14 天前
基于Python flask的中学可控智能命题系统设计与实现,整合遗传算法、DeepSeek 大模型及数据库技术构建一体化应用
数据库·人工智能·python·算法·机器学习·flask·遗传算法
m沐沐14 天前
【计算机视觉】OpenCV 模板匹配银行卡数字识别---下
人工智能·python·opencv·计算机视觉·pycharm·numpy
chushiyunen14 天前
langchain4j笔记、tools
笔记·python·flask
叫我:松哥14 天前
基于机器学习的中文文本抑郁症风险检测系统,包括NLP与传统机器学习的抑郁症识别,准确率92%
人工智能·深度学习·机器学习·自然语言处理·flask·nlp·bootstrap
TechWayfarer14 天前
查IP归属地接入实战:保险理赔如何做动态风险监控与预警
网络·python·tcp/ip·安全·flask