# 对话历史 Source: https://docs.bigmodel.cn/api-reference/agent-api/对话历史 /openapi/openapi.json post /v1/agents/conversation 查询智能体对话历史,现仅支持 `slides_glm_agent` 智能体。点击 **Try it** 按钮可快速试用。 # 异步结果 Source: https://docs.bigmodel.cn/api-reference/agent-api/异步结果 /openapi/openapi.json post /v1/agents/async-result 查询智能体异步任务的处理结果和状态。点击 **Try it** 按钮可快速试用。 # 智能体对话 Source: https://docs.bigmodel.cn/api-reference/agent-api/智能体对话 /openapi/openapi.json post /v1/agents 与智能体进行对话交互。支持同步和流式调用,提供智能体的专业能力。见 [智能体文档](/cn/guide/agents/translation)。点击 **Try it** 按钮可快速试用。 # 问答 Agent 对话(流式) Source: https://docs.bigmodel.cn/api-reference/agent-api/问答-agent-对话(流式) /openapi/openapi.json post /zrag/agent/chat 基于 ReAct(Reasoning + Acting)推理引擎的流式对话接口。LLM 会根据用户问题自主决定是否调用工具(知识检索、查询重写等),并通过 SSE 实时推送思考过程、工具调用和最终回答。点击 **Try it** 按钮可快速试用。 # OCR 服务 Source: https://docs.bigmodel.cn/api-reference/工具-api/ocr-服务 /openapi/openapi.json post /paas/v4/files/ocr 上传图片文件,使用指定工具类型进行 OCR(光学字符识别),支持手写体、文字等识别模式,见 [OCR 服务](/cn/guide/tools/zhipu-ocr)。点击 **Try it** 按钮可快速试用。 # 内容安全 Source: https://docs.bigmodel.cn/api-reference/工具-api/内容安全 /openapi/openapi.json post /paas/v4/moderations 可对文本、图片、音频、视频格式类型的内容进行检测,精准识别涉黄、涉暴、违法违规等风险内容,并输出结构化审核结果(包括内容类型、风险类型及具体风险内容片段),快速定位和处理违规信息。点击 **Try it** 按钮可快速试用。 # 文件解析 Source: https://docs.bigmodel.cn/api-reference/工具-api/文件解析 /openapi/openapi.json post /paas/v4/files/parser/create 创建文件解析任务,支持多种文件格式和解析工具。见 [文件解析服务](/cn/guide/tools/file-parser)。点击 **Try it** 按钮可快速试用。 # 文件解析(同步) Source: https://docs.bigmodel.cn/api-reference/工具-api/文件解析同步 /openapi/openapi.json post /paas/v4/files/parser/sync 创建文件解析任务,支持多种文件格式和解析工具。见 [文件解析服务](/cn/guide/tools/file-parser)。点击 **Try it** 按钮可快速试用。 # 网络搜索 Source: https://docs.bigmodel.cn/api-reference/工具-api/网络搜索 /openapi/openapi.json post /paas/v4/web_search `Web Search API` 是一个专给大模型用的搜索引擎,在传统搜索引擎网页读取、排序的能力基础上,增强了意图识别能力,返回更适合大模型处理的结果(网页标题、`URL`、摘要、名称、图标等)。支持意图增强检索、结构化输出和多引擎支持。见 [网络搜索服务](/cn/guide/tools/web-search)。点击 **Try it** 按钮可快速试用。 # 网页阅读 Source: https://docs.bigmodel.cn/api-reference/工具-api/网页阅读 /openapi/openapi.json post /paas/v4/reader 读取并解析指定 `URL` 的网页内容,可选择返回格式、支持控制缓存、图片保留与摘要选项等。点击 **Try it** 按钮可快速试用。 # 解析结果 Source: https://docs.bigmodel.cn/api-reference/工具-api/解析结果 /openapi/openapi.json get /paas/v4/files/parser/result/{taskId}/{format_type} 异步获取文件解析任务的结果,支持返回纯文本或下载链接格式。见 [文件解析服务](/cn/guide/tools/file-parser)。点击 **Try it** 按钮可快速试用。 # 列出批处理任务 Source: https://docs.bigmodel.cn/api-reference/批处理-api/列出批处理任务 /openapi/openapi.json get /paas/v4/batches 获取批量处理任务列表,支持分页。见 [批量服务](/cn/guide/tools/batch)。点击 **Try it** 按钮可快速试用。 # 创建批处理任务 Source: https://docs.bigmodel.cn/api-reference/批处理-api/创建批处理任务 /openapi/openapi.json post /paas/v4/batches 创建一个新的批量处理任务。见 [批量服务](/cn/guide/tools/batch)。点击 **Try it** 按钮可快速试用。 # 取消批处理任务 Source: https://docs.bigmodel.cn/api-reference/批处理-api/取消批处理任务 /openapi/openapi.json post /paas/v4/batches/{batch_id}/cancel 根据批处理任务`ID`取消正在运行的批量处理任务。见 [批量服务](/cn/guide/tools/batch)。点击 **Try it** 按钮可快速试用。 # 检索批处理任务 Source: https://docs.bigmodel.cn/api-reference/批处理-api/检索批处理任务 /openapi/openapi.json get /paas/v4/batches/{batch_id} 根据批处理任务`ID`获取批量处理任务详情。见 [批量服务](/cn/guide/tools/batch)。点击 **Try it** 按钮可快速试用。 # 上传文件 Source: https://docs.bigmodel.cn/api-reference/文件-api/上传文件 /openapi/openapi.json post /paas/v4/files 上传用于 `Batch 任务`、`智能体` 等功能的文件。注意 `Try it` 功能仅支持小文件上传,实际支持的文件大小请参见下文 `purpose` 相关说明。点击 **Try it** 按钮可快速试用。 # 删除文件 Source: https://docs.bigmodel.cn/api-reference/文件-api/删除文件 /openapi/openapi.json delete /paas/v4/files/{file_id} 永久删除指定文件及其所有关联数据。点击 **Try it** 按钮可快速试用。 # 文件内容 Source: https://docs.bigmodel.cn/api-reference/文件-api/文件内容 /openapi/openapi.json get /paas/v4/files/{file_id}/content 获取文件内容。只支持 `batch` 文件类型。点击 **Try it** 按钮可快速试用。 # 文件列表 Source: https://docs.bigmodel.cn/api-reference/文件-api/文件列表 /openapi/openapi.json get /paas/v4/files 获取已上传文件的分页列表,支持按用途和排序过滤。点击 **Try it** 按钮可快速试用。 # 删除音色 Source: https://docs.bigmodel.cn/api-reference/模型-api/删除音色 /openapi/openapi.json post /paas/v4/voice/delete 删除指定的音色。点击 **Try it** 按钮可快速试用。 # 图像生成 Source: https://docs.bigmodel.cn/api-reference/模型-api/图像生成 /openapi/openapi.json post /paas/v4/images/generations 使用 [GLM-Image](/cn/guide/models/image-generation/glm-image) 等系列模型从文本提示生成高质量图像。通过对用户文字描述快速、精准的理解,让 `AI` 的图像表达更加精确和个性化。点击 **Try it** 按钮可快速试用。 # 图像生成(异步) Source: https://docs.bigmodel.cn/api-reference/模型-api/图像生成异步 /openapi/openapi.json post /paas/v4/async/images/generations 使用 [GLM-Image](/cn/guide/models/image-generation/glm-image) 系列模型从文本提示生成高质量图像。通过对用户文字描述快速、精准的理解,让 `AI` 的图像表达更加精确和个性化。仅支持 `GLM-Image` 模型。点击 **Try it** 按钮可快速试用。 # 对话补全 Source: https://docs.bigmodel.cn/api-reference/模型-api/对话补全 /openapi/openapi.json post /paas/v4/chat/completions 和 [指定模型](/cn/guide/start/model-overview) 对话,模型根据请求给出响应。支持多种模型,支持多模态(文本、图片、音频、视频、文件),流式和非流式输出,可配置采样,温度,最大令牌数,工具调用等。点击 **Try it** 按钮可快速试用。 # 对话补全(异步) Source: https://docs.bigmodel.cn/api-reference/模型-api/对话补全异步 /openapi/openapi.json post /paas/v4/async/chat/completions 和 [指定模型](/cn/guide/start/model-overview) 对话,通过查询异步结果获取模型响应。支持多种模型,支持多模态(文本、图片、音频、视频、文件),可配置采样,温度,最大令牌数,工具调用等。注意此为异步接口,通过 [查询异步结果](/api-reference/%E6%A8%A1%E5%9E%8B-api/%E6%9F%A5%E8%AF%A2%E5%BC%82%E6%AD%A5%E7%BB%93%E6%9E%9C) 获取生成结果。点击 **Try it** 按钮可快速试用。 # 文本分词器 Source: https://docs.bigmodel.cn/api-reference/模型-api/文本分词器 /openapi/openapi.json post /paas/v4/tokenizer `Tokenizer` 用于将文本切分为模型可识别的 `token` 并计算数量。它接收用户输入的文本,通过模型进行分词处理,最终返回对应的 `token` 数量。适用于文本长度评估、模型输入预估、对话上下文截断、费用计算等。点击 **Try it** 按钮可快速试用。 # 文本嵌入 Source: https://docs.bigmodel.cn/api-reference/模型-api/文本嵌入 /openapi/openapi.json post /paas/v4/embeddings 使用 [GLM Embedding](/cn/guide/models/embedding/embedding-3) 系列模型将文本转换为高维向量表示,用于语义相似性和搜索。点击 **Try it** 按钮可快速试用。 # 文本转语音 Source: https://docs.bigmodel.cn/api-reference/模型-api/文本转语音 /openapi/openapi.json post /paas/v4/audio/speech 使用 `GLM-TTS` 将文本转换为自然语音,支持多种声音、情感控制和语调调整。点击 **Try it** 按钮可快速试用。 # 文本重排序 Source: https://docs.bigmodel.cn/api-reference/模型-api/文本重排序 /openapi/openapi.json post /paas/v4/rerank `Rerank` 用于文本重排序,通过接收用户的查询文本及候选文本列表,使用模型计算候选文本与查询文本的相关性得分并返回分数。适用于智能问答、信息检索等场景。点击 **Try it** 按钮可快速试用。 # 文档解析 Source: https://docs.bigmodel.cn/api-reference/模型-api/文档解析 /openapi/openapi.json post /paas/v4/layout_parsing 使用 [GLM-OCR](/cn/guide/models/vlm/glm-ocr) 模型解析文档和图片的布局并提取文本内容。支持图片和`PDF`文档的`OCR`识别,返回详细的布局信息和可视化结果。点击 **Try it** 按钮可快速试用。 # 查询异步结果 Source: https://docs.bigmodel.cn/api-reference/模型-api/查询异步结果 /openapi/openapi.json get /paas/v4/async-result/{id} 查询对话补全和视频生成异步请求的处理结果和状态。点击 **Try it** 按钮可快速试用。 # 视频生成(异步) Source: https://docs.bigmodel.cn/api-reference/模型-api/视频生成异步 /openapi/openapi.json post /paas/v4/videos/generations 通过调用 [视频模型](/cn/guide/models/video-generation/cogvideox-3) 能力生成视频内容。支持多种视频生成方式,包括文本转视频、图像转视频等。注意此为异步接口,通过 [查询异步结果](/api-reference/%E6%A8%A1%E5%9E%8B-api/%E6%9F%A5%E8%AF%A2%E5%BC%82%E6%AD%A5%E7%BB%93%E6%9E%9C) 获取生成视频结果。点击 **Try it** 按钮可快速试用。 # 语音转文本 Source: https://docs.bigmodel.cn/api-reference/模型-api/语音转文本 /openapi/openapi.json post /paas/v4/audio/transcriptions 使用 [GLM-ASR-2512](/cn/guide/models/sound-and-video/glm-asr-2512) 模型将音频文件转录为文本,支持多语言和实时流式转录。点击 **Try it** 按钮可快速试用。 # 音色列表 Source: https://docs.bigmodel.cn/api-reference/模型-api/音色列表 /openapi/openapi.json get /paas/v4/voice/list 获取音色列表,支持按音色名称模糊搜索、按音色类型过滤。点击 **Try it** 按钮可快速试用。 # 音色复刻 Source: https://docs.bigmodel.cn/api-reference/模型-api/音色复刻 /openapi/openapi.json post /paas/v4/voice/clone 使用音色复刻技术,基于示例音频生成指定音色、文本内容的语音合成。点击 **Try it** 按钮可快速试用。 # 上传URL文档 Source: https://docs.bigmodel.cn/api-reference/知识库-api/上传url文档 /openapi/openapi.json post /llm-application/open/document/upload_url 上传`URL`类型的文档或网页作为内容填充知识库。点击 **Try it** 按钮可快速试用。 # 上传文件文档 Source: https://docs.bigmodel.cn/api-reference/知识库-api/上传文件文档 /openapi/openapi.json post /llm-application/open/document/upload_document/{id} 向指定知识库上传文件类型文档,支持多种切片方式和回调。点击 **Try it** 按钮可快速试用。 # 全模态知识库检索 Source: https://docs.bigmodel.cn/api-reference/知识库-api/全模态知识库检索 /openapi/openapi.json post /zrag/retrieval/retrieve 用于检索全模态知识库,支持文本、图片、视频等多模态输入检索,支持向量检索、关键词检索、混合检索,支持查询重写、重排、QA干预等高级功能。点击 **Try it** 按钮可快速试用。 # 创建知识库 Source: https://docs.bigmodel.cn/api-reference/知识库-api/创建知识库 /openapi/openapi.json post /llm-application/open/knowledge 用于创建个人知识库,支持绑定向量化模型、设置名称、描述、背景色和图标。点击 **Try it** 按钮可快速试用。 # 删除文档 Source: https://docs.bigmodel.cn/api-reference/知识库-api/删除文档 /openapi/openapi.json delete /llm-application/open/document/{id} 根据文档`ID`删除文档。点击 **Try it** 按钮可快速试用。 # 删除知识库 Source: https://docs.bigmodel.cn/api-reference/知识库-api/删除知识库 /openapi/openapi.json delete /llm-application/open/knowledge/{id} 根据知识库`ID`删除个人知识库。点击 **Try it** 按钮可快速试用。 # 文档列表 Source: https://docs.bigmodel.cn/api-reference/知识库-api/文档列表 /openapi/openapi.json get /llm-application/open/document 获取指定知识库下的文档列表。点击 **Try it** 按钮可快速试用。 # 文档详情 Source: https://docs.bigmodel.cn/api-reference/知识库-api/文档详情 /openapi/openapi.json get /llm-application/open/document/{id} 根据文档`ID`获取文档详情。点击 **Try it** 按钮可快速试用。 # 知识库使用量 Source: https://docs.bigmodel.cn/api-reference/知识库-api/知识库使用量 /openapi/openapi.json get /llm-application/open/knowledge/capacity 获取个人知识库的使用量详情,包括字数和字节数。点击 **Try it** 按钮可快速试用。 # 知识库列表 Source: https://docs.bigmodel.cn/api-reference/知识库-api/知识库列表 /openapi/openapi.json get /llm-application/open/knowledge 获取个人知识库列表,支持分页。点击 **Try it** 按钮可快速试用。 # 知识库检索 Source: https://docs.bigmodel.cn/api-reference/知识库-api/知识库检索 /openapi/openapi.json post /llm-application/open/knowledge/retrieve 用于检索个人知识库,支持向量检索、关键词检索、混合检索,支持自定义重排模型。点击 **Try it** 按钮可快速试用。 # 知识库详情 Source: https://docs.bigmodel.cn/api-reference/知识库-api/知识库详情 /openapi/openapi.json get /llm-application/open/knowledge/{id} 根据知识库`ID`获取个人知识库详情。点击 **Try it** 按钮可快速试用。 # 编辑知识库 Source: https://docs.bigmodel.cn/api-reference/知识库-api/编辑知识库 /openapi/openapi.json put /llm-application/open/knowledge/{id} 用于编辑已经创建好的个人知识库,仅传入要修改的字段。点击 **Try it** 按钮可快速试用。 # 解析文档图片 Source: https://docs.bigmodel.cn/api-reference/知识库-api/解析文档图片 /openapi/openapi.json post /llm-application/open/document/slice/image_list/{id} 用于获取文件下解析到的图片序号和图片链接映射关系。点击 **Try it** 按钮可快速试用。 # 重新向量化 Source: https://docs.bigmodel.cn/api-reference/知识库-api/重新向量化 /openapi/openapi.json post /llm-application/open/document/embedding/{id} 用于重新向量化文档(重试等操作)。同步返回成功表示调用成功,向量化完成后调用`callback_url`进行通知,也可调用知识详情接口获取结果。多用于`url`知识场景。点击 **Try it** 按钮可快速试用。 # 错误码 Source: https://docs.bigmodel.cn/cn/api/api-code 调用智谱开放平台 API 时,接收到的响应码由两部分组成:外层是 HTTP 状态码,内层是响应体正文中的定义的业务错误码,提供了更具体的错误描述。 | 业务错误码 | HTTP 状态码 | 错误信息 | | :---- | :------- | :------------------------------------------------------------------------------------------------------------ | | - | 500 | 内部错误 | | 1000 | 401 | 身份验证失败 | | 1001 | 401 | Header 中未收到 Authentication 参数,无法进行身份验证 | | 1003 | 401 | Authentication Token 已过期,请重新生成/获取 | | 1005 | 401 | 已开启二次认证保护,需要二次认证登录。 | | 1113 | 429 | 您的账户已欠费,请充值后重试 | | 1200 | 500 | API 调用失败 | | 1210 | 400 | API 调用参数有误,请检查文档 | | 1211 | 400 | 模型不存在,请检查模型代码 | | 1212 | 400 | 当前模型不支持 `${method}` 调用方式 | | 1213 | 400 | 未正常接收到 `${field}` 参数 | | 1214 | 400 | `${field}` 参数非法。请检查文档 | | 1215 | 400 | `${field1}` 与 `${field2}` 不能同时设置,请检查文档 | | 1220 | 403 | 您无权访问 `${API_name}` | | 1221 | 400 | API `${API_name}` 已下线 | | 1222 | 400 | API `${API_name}` 不存在 | | 1230 | 500 | API 调用流程出错 | | 1234 | 500 | 网络错误,错误id:`${error_id}`,请联系客服 | | 1261 | 400 | Prompt 超长 | | 1301 | 400 | 系统检测到输入或生成内容可能包含不安全或敏感内容,请您避免输入易产生敏感内容的提示语,感谢您的配合 | | 1302 | 429 | 您的账户已达到速率限制,请您控制请求频率 | | 1305 | 429 | 该模型当前访问量过大,请您稍后再试 | | 1308 | 429 | 已达到 `${number} ${unit}` 的使用上限。您的限额将在 `${next_flush_time}` 重置 | | 1309 | 429 | 您的 GLM Coding Plan 套餐已到期,暂无法使用,前往官方续订后即可恢复 [https://bigmodel.cn/claude-code](https://bigmodel.cn/claude-code) | | 1310 | 429 | 您已达到每周/每月使用上限,您的限额将在 `${next_flush_time}` 重置 | | 1311 | 429 | 当前订阅套餐暂未开放`${model_name}`权限 | | 1313 | 429 | 您的账户当前使用模式不符合公平使用策略,请求频率已受到限制。详情请参阅《条款与协议-订阅及自动续费协议》,如需恢复请前往个人中心-编程套餐总览-顶部申请解除限制 | | 1314 | 429 | 您的企业套餐已失效,请联系企业管理员。 | | 1315 | 429 | 该 API Key 仅限企业编程套餐场景使用,请到官网更换对应产品类型的 API Key | | 1316 | 429 | 已达到 5 小时使用上限。主账号余额不足,无法使用超额按量付费。您的限额将在 `{next_flush_time}` 重置。 | | 1317 | 429 | 已达到 7 天使用上限。主账号余额不足,无法使用超额按量付费。您的限额将在 `{next_flush_time}` 重置。 | | 1318 | 429 | 已达到 5 小时使用上限,且已达子账号月消费上限,无法使用超额按量付费,请联系管理员调整。您的限额将在 `{next_flush_time}` 重置。 | | 1319 | 429 | 已达到 7 天使用上限,且已达子账号月消费上限,无法使用超额按量付费,请联系管理员调整。您的限额将在 `{next_flush_time}` 重置。 | | 1320 | 429 | 已达到 5 小时使用上限,且已达企业级月消费上限,无法使用超额按量付费,请联系管理员调整。您的限额将在 `{next_flush_time}` 重置。 | | 1321 | 429 | 已达到 7 天使用上限,且已达企业级月消费上限,无法使用超额按量付费,请联系管理员调整。您的限额将在 `{next_flush_time}` 重置。 | ## 错误响应示例 以下是 curl 请求的响应报文,其中 401 是 HTTP 状态码,1001 是业务错误码。 ``` * We are completely uploaded and fine < HTTP/2 401 < date: Wed, 20 Mar 2024 03:06:05 GMT < content-type: application/json < set-cookie: acw_tc=76b20****a0e42;path=/;HttpOnly;Max-Age=1800 < server: nginx/1.21.6 < vary: Origin < vary: Access-Control-Request-Method < vary: Access-Control-Request-Headers < * Connection #0 to host open.bigmodel.cn left intact {"error":{"code":"1001","message":"Header 中未收到 Authentication 参数,无法进行身份验证"}} ``` > **注:** 使用流式(SSE)调用时,如果 API 在推理过程中异常终止,不会返回上述错误码,而是在响应体的 `finish_reason` 参数中返回异常原因,详情请参考 `finish_reason` 的参数说明。 # 快速开始 Source: https://docs.bigmodel.cn/cn/api/introduction API 文档提供了智谱开放平台 RESTful API 的详细信息,您可以通过点击 Try it 按钮直接调试 API。 智谱开放平台提供标准的 HTTP API 接口,支持多种编程语言和开发环境,同时提供 [SDKs](/cn/guide/develop/python/introduction)。 ## API 端点 智谱开放平台的通用 API 端点: ``` https://open.bigmodel.cn/api/paas/v4 ``` 使用 [GLM 编码套餐](/cn/coding-plan/overview) 时,需配置专属的 Coding 端点,详情请见[编码套餐快速开始](/cn/coding-plan/quick-start) ## 身份验证 开放平台 API 使用标准的 **HTTP Bearer** 进行身份验证。 您可以在 [API Keys 页面](https://bigmodel.cn/usercenter/proj-mgmt/apikeys) 创建或管理密钥。 API 密钥需通过 HTTP 请求头的 Bearer 认证方式提供。 ``` Authorization: Bearer YOUR_API_KEY ``` 建议将 API Key 设置为环境变量,避免硬编码到代码中,以提高安全性。 ## 调试工具 API 详情页面右上角提供丰富的 **调用示例**,可点击切换查看不同场景的示例。
同时提供 API 调试工具,点击 **Try it** 按钮即可快速尝试 API 调用。 * API 详情页面包含多个交互选项,请注意 **切换输入类型下拉框**、**切换标签页** 和 **添加新内容** 等功能。 * 点击 **Add an item** 或 **Add new property** 可添加 API 所需的更多属性。 * **注意**: 切换标签页后需要重新输入或设置之前的属性值。 ## 调用示例 ```bash theme={null} curl -X POST "https://open.bigmodel.cn/api/paas/v4/chat/completions" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "glm-5.2", "messages": [ { "role": "system", "content": "你是一个有用的AI助手。" }, { "role": "user", "content": "你好,请介绍一下自己。" } ], "temperature": 1.0, "stream": true }' ``` **安装 SDK** ```bash theme={null} # 安装最新版本 pip install zai-sdk # 或指定版本 pip install zai-sdk==0.2.3 ``` **验证安装** ```python theme={null} import zai print(zai.__version__) ``` **使用示例** ```python theme={null} from zai import ZhipuAiClient # 初始化客户端 client = ZhipuAiClient(api_key="YOUR_API_KEY") # 创建聊天完成请求 response = client.chat.completions.create( model="glm-5.2", messages=[ { "role": "system", "content": "您是一个有用的AI助手。" }, { "role": "user", "content": "您好,请介绍一下自己。" } ], temperature=0.6 ) # 获取回复 print(response.choices[0].message.content) ``` **安装 SDK** **Maven** ```xml theme={null} ai.z.openapi zai-sdk 0.3.5 ``` **Gradle (Groovy)** ```groovy theme={null} implementation 'ai.z.openapi:zai-sdk:0.3.5' ``` **使用示例** ```java theme={null} import ai.z.openapi.ZhipuAiClient; import ai.z.openapi.service.model.*; import java.util.Arrays; public class QuickStart { public static void main(String[] args) { // 初始化客户端 ZhipuAiClient client = ZhipuAiClient.builder().ofZHIPU() .apiKey("YOUR_API_KEY") .build(); // 创建聊天完成请求 ChatCompletionCreateParams request = ChatCompletionCreateParams.builder() .model("glm-5.2") .messages(Arrays.asList( ChatMessage.builder() .role(ChatMessageRole.USER.value()) .content("Hello, who are you?") .build() )) .stream(false) .temperature(0.6f) .maxTokens(1024) .build(); // 发送请求 ChatCompletionResponse response = client.chat().createChatCompletion(request); // 获取回复 System.out.println(response.getData().getChoices().get(0).getMessage()); } } ``` **安装 SDK** ```bash theme={null} # 安装最新版本 pip install zhipuai # 或指定版本 pip install zhipuai==2.1.5.20250726 ``` **验证安装** ```python theme={null} import zhipuai print(zhipuai.__version__) ``` **使用示例** ```python theme={null} from zhipuai import ZhipuAI client = ZhipuAI(api_key="YOUR_API_KEY") response = client.chat.completions.create( model="glm-5.2", messages=[ { "role": "system", "content": "您是一个有用的AI助手。" }, { "role": "user", "content": "您好,请介绍一下自己。" } ] ) print(response.choices[0].message.content) ``` # 速率限制 Source: https://docs.bigmodel.cn/cn/api/rate-limit 为保障平台服务稳定性、模型资源的公平使用,以及整体服务质量,智谱开放平台对 API 调用实施 **速率限制(Rate Limits)机制**。下面对速率限制的触发场景、常见错误码及应对方式进行详细说明。 **通用 API 用户:** 可通过 [速率限制](https://bigmodel.cn/usercenter/proj-mgmt/rate-limits) 查看您的账户目前各模型可调用的速率; **GLM Coding Plan 用户:** 速率(并发数)限制与您的套餐等级相关,平台会根据资源进行动态调整,低峰期享有更高速率,基本原则 Max > Pro > Lite。 ## 一、什么是速率限制? **速率限制** 是指平台在一定时间窗口内,对单个账户或调用方的 API 并发请求数等进行限制。 在智谱开放平台中,速率限制主要体现在: * **并发请求数限制** * **不同模型设有独立的并发限制** * **不同用户权益等级、不同套餐对应不同的** **并发限制** * **高峰期的动态限流与平台级保护策略** *** ## 二、为什么需要速率限制? 速率限制是业界大模型 API 的通用做法,其核心目的包括: **1. 保障平台整体稳定性** **:** 防止瞬时高并发请求对模型服务造成冲击;通过设置速率限制,可以最大程度帮助用户保持稳定的体验。 **2. 确保用户间的公平使用** **:** 避免个别账户在高并发场景下占用过多资源,影响其他用户的正常调用。 **3. 防范异常流量或误用行为** **:** 包括程序异常、无限重试、非预期高频调用等情况。 *** ## 三、智谱开放平台速率限制机制说明 ### 1. 按用户权益等级 & 模型维度划分的并发限制 如果您是 API 用户,智谱开放平台对**不同模型设置了不同的并发数上限**。 (可通过 [速率限制](https://bigmodel.cn/usercenter/proj-mgmt/rate-limits) 查看您的账户目前各模型可调用的速率): * 通用模型 * 图像 / 视频生成模型 * 向量模型 * 实时音视频模型 * …… 同时,速率限制量级和您的用户权益等级相关,(可通过 [用户权益](https://bigmodel.cn/usercenter/equity-mgmt/user-rights) 查看自己的积分与用户权益等级。) > ⚠️ 并发数指的是:**同一时刻正在处理中的请求数量**。 *** ### 2. 按 GLM Coding Plan 套餐等级划分的并发限制 如果您是 **GLM Coding Plan** **套餐用户,速率限制**与**您订阅的** **套餐** **等级**相关。不同套餐用户,默认可用的模型并发上限不同,每个项目开发可使用 Subagent 等方式并发模型调用,我们的推荐使用项目数量如下([查看我的套餐等级](https://bigmodel.cn/coding-plan/personal/overview)): * **Lite :** **建议同时进行单个项目的开发** * **Pro :** **建议同时进行 1-2 个项目的开发** * **Max** **:建议同时进行 2+ 个项目的开发** 套餐用户在低峰期将享有更高的并发权益(动态提升),能够支撑更高数量的项目开发。 *** ### 3. 高峰期的限流策略 在业务高峰期: * 若某一账户在短时间内发起**大量并发请求** * 超出该账户在对应模型上的并发上限 平台将基于 **账户维度** 对请求进行限流处理,而非模型永久不可用。 *** ### 4. 平台级服务过载说明 除账户自身速率限制外,平台在以下情况下可能触发 **平台级保护机制**: * 某一模型在短时间内整体访问量激增 * 底层算力资源处于高负载状态 * 平台进行系统维护、扩容或异常恢复 此类情况属于 **平台服务过载**,与单一账户的调用行为无直接关系。 *** ## 四、相关错误码 ### 1. 错误码 1302:触发用户速率限制 **错误含义** 您的账户已达到速率限制,请您控制请求频率 **典型原因** * 当前模型的并发请求数已达到账户上限 * 短时间内请求过于密集 **建议处理方式** * 降低并发请求数量 * 增加请求队列或排队机制 * 在必要时提升账户权益等级,提升并发额度([如何提升用户权益等级](https://docs.bigmodel.cn/cn/guide/platform/equity-explain))(此条不适用 GLM Coding Plan) ### 2. 错误码 1305:平台服务过载 **错误含义** 该模型当前访问量过大,请您稍后再试 **典型原因** * 模型在当前时段整体访问压力较高 * 平台触发了全局保护或临时限流 **建议处理方式** * 稍后重试请求 * 增加重试间隔,避免立即高频重试 * 在业务允许的情况下进行降级或延迟处理 *** ## 五、如何合理应对速率限制? 我们建议开发者在系统设计中提前考虑以下策略: ### 1. 控制并发与请求频率 * 使用请求队列或并发池 * 避免瞬时“洪峰式”请求 * 避免固定间隔的高频重试 ### 2. 异步请求或批处理 API * 非实时场景可通过批处理方式或异步请求降低并发压力([Batch API](https://docs.bigmodel.cn/api-reference/批处理-api/列出批处理任务)、[异步请求](https://docs.bigmodel.cn/api-reference/模型-api/对话补全异步)) *** ## 六、如何申请提升速率限制? **GLM Coding Plan 用户按订阅套餐等级统一并发,暂不支持申请调整。** 若您使用的是**通用 API**,且业务确实需要更高并发能力,可通过控制台提交申请: 1. 进入【[速率限制调整申请](https://bigmodel.cn/rate-limits/form)】 2. 填写以下信息: * 需要调整的模型 * 期望增加的并发数量 * 实际使用场景与业务说明 平台将在 **10 个工作日内完成审核**,审核结果将通过注册手机号或站内通知告知。 # 音视频通话 Source: https://docs.bigmodel.cn/cn/asyncapi/realtime [GLM-Realtime](/cn/guide/models/sound-and-video/glm-realtime) 提供实时音视频通话和多模态交互能力,支持实时语音对话、视频理解、函数调用等功能。
由于浏览器安全考虑禁止 `WebSocket` 添加鉴权认证请求头,无法在此直接体验,使用详情请参考 [Realtime 指南使用](/cn/guide/models/sound-and-video/glm-realtime)。 # 学术数据处理 Source: https://docs.bigmodel.cn/cn/best-practice/case/academic-data 论文总结翻译润色 ## 场景介绍 大模型技术正全面革新学术研究的传统方式。面对海量论文资料,研究者亟需高效工具来减轻工作量。以智谱 GLM 系列模型为代表的语言模型,凭借强大的语义理解能力,能够快速总结论文内容、或者进行精准翻译。这不仅节省了研究者阅读和整理文献的时间,还能帮助他们聚焦于核心问题。 模型的通用性使其能够适应不同学科和复杂文本,从中提炼出清晰的核心观点,为研究工作提速。无论是学者梳理文献、设计研究方案,还是学生快速掌握课程重点,大模型都能显著降低知识获取的难度,减少学科背景的限制。 大语言模型通过减轻文献处理的负担,让研究者将更多精力投入到创新和实践中,是提升学术效率与质量的得力工具。 ## 业务需求 论文处理全景图: ## 解决方案 ### 文献预处理 海量文献通常以 PDF、Word 或 Excel 等格式存储,在使用大模型处理前,需要将其转换为可供模型解析的文本格式,您可以借助平台工具高效完成[文件内容的提取](/cn/guide/tools/file-extract)。 代码示例: ``` from pathlib import Path from zhipuai import ZhipuAI client = ZhipuAI( api_key="YOUR_API_KEY", base_url="https://open.bigmodel.cn/api/paas/v4" ) # 用于上传文件 # 格式限制:.PDF .DOCX .DOC .XLS .XLSX .PPT .PPTX .PNG .JPG .JPEG .CSV .PY .TXT .MD .BMP .GIF # 文件大小不超过 50M,图片大小不超过 5M、总数限制为 100 个文件 file_object = client.files.create(file=Path("本地文件地址"), purpose="file-extract") # 文件内容抽取 file_content = client.files.content(file_id=file_object.id).content.decode() print(file_content) ``` ### LLM内容处理 将文件内容自动化提取并结合大语言模型进行批量分析或任务处理,适用于文档总结、信息提取等场景。 代码示例: ``` from pathlib import Path import json import os from concurrent.futures import ThreadPoolExecutor def process_file(file_path): try: # 创建文件对象 file_object = client.files.create(file=Path(file_path), purpose="file-extract") # 获取文本内容 file_content = json.loads(client.files.content(file_id=file_object.id).content)["content"] message_content = ( #更换提示词 "在这里更换对应任务的提示词" f"{file_content}" ) response = client.chat.completions.create( model="glm-4.7", messages=[ {"role": "user", "content": message_content} ], ) print("file_path :" + file_path + response.choices[0].message.content) result = client.files.delete(file_id=f"{file_object.id}" ) except Exception as e: print(e) def get_all_files(folder_path): all_files = [] for root, dirs, files in os.walk(folder_path): for file in files: all_files.append(os.path.join(root, file)) return all_files ``` 程序主入口,运行程序: ``` import concurrent.futures if __name__ == "__main__": all_files = get_all_files("本地存储论文的文件夹路径") #更换成本地的文件夹路径 print(all_files) with concurrent.futures.ThreadPoolExecutor() as executor: futures = [executor.submit(process_file, file_path) for file_path in all_files] for future in concurrent.futures.as_completed(futures): try: future.result() except Exception as e: print(f"Future 执行出错: {e}") ``` ### Prompt 提示词库 论文链接:[https://arxiv.org/pdf/2311.07115v1](https://arxiv.org/pdf/2311.07115v1) #### 论文关键信息抽取 学生若要梳理文章中的引用文献,通常需要查看文档的引用部分。然而,由于固定的引用格式,这些文献信息往往不易于识别和阅读。 * 部分引用文献 * 文献提取提示词 文档中文献的引用格式让整理文献变得复杂,大模型结合合适的提示词能够帮助学生快速整理文献部分,获取引用文献的相关信息。 ``` # Goals 你是一位精通总结领域趋势的专家,尤其擅长根据给定的内容汇总出相关的领域专业技术关键词,并且精通简体中文的专业翻译。 # Constrains - 必须遵循指定的格式进行信息提取。 - 确保提取结果的准确性和格式正确性。 - 输出结果必须仅为outforamt,不得包含任何多余信息,不要展示推理过程。 # outformat if (如果文本中没有文献引用) { return "{无}"; } else { // 含有文献引用,返回 JSON 格式文献信息 return { { "authorName": "", // 文献作者的姓名 "title": "", // 文献的标题 "journalName": "", // 期刊的名称 "publicationYear": "", // 发表的年份 "publisherName": "", // 出版社名称 "volumeName": "", // 卷的名称 "issueNumber": "", // 期号信息 "pageNumbers": "" // 文献的页码 } // 以此类推 }; } # Workflow 1.读取并分析用户提供的文本{文本内容}。 2.识别文本中的文献引用,排除专利引用。 3.按照指定格式提取文献引用信息。 4.严格按照 outforamt 输出内容,并输出 JSON 格式。 ``` * 文献提取结果: ![Description](https://cdn.bigmodel.cn/markdown/1731585804390image.png?attname=image.png) #### 论文内容总结 阅读完整篇文章之后需要花费大量时间总结和梳理文章内容,而大模型可以结合有效的提示词,迅速总结概括文档,从而节省时间。 * 论文总结提示词 GLM-4.7 结合良好的提示词能够帮助学生快速总结论文内容,提高论文梳理的效率。 ``` # Goals 你是一位资深的教授,擅长从学术论文中提炼出关键内容,并精通简体中文的专业翻译。请根据以下内容,识别并总结文章中的主要内容,并按照指定格式提取并返回主要内容的信息。 # Constrains -确保总结的简洁性,去除冗余信息。 -突出文本中的核心观点和关键信息。 -确保总结的准确性和专业性。 #outformat "文档标题" : ""; //文档的标题 "主要内容" : ""; //文档的主要内容 } ; # Workflow 读取并分析用户提供的文本{文本内容}。 提炼文本中的关键信息和核心观点。 生成一个简洁明了的内容总结。 输出总结内容,确保其准确性和专业性。 请根据上述内容,生成一个简洁明了的内容总结。 ``` * 总结示例 ![Description](https://cdn.bigmodel.cn/markdown/1753256385055download_image.png?attname=download_image.png) * 论文内容总结结果示例: ``` { "文档标题": GEN-Z: GENERATIVE ZERO-SHOT TEXT CLASSIFICATION WITH CONTEXTUALIZED LABEL DESCRIPTIONS, "主要内容": GEN-Z 是一个生成式提示框架,用于零样本文本分类。它通过自然语言描述的标签来衡量语言模型生成输入文本的可能性。该框架是多变量的,因为标签描述允许我们将关于标签的附加上下文信息无缝集成到任务中,以提高任务性能。在多个标准分类基准测试中,使用六个开源语言模型家族,我们发现对评估集数据源的简单上下文化始终优于零样本和少样本基线,同时提高了对提示变化的鲁棒性。此外,我们的方法通过在标签描述中包含作者、主题或读者信息,以零样本方式实现了分类的个性化。 } ``` #### 论文内容翻译 学生在阅读文献时,由于语言差异,常常需要依赖翻译工具。然而,而且现在市面上的翻译软件由于字数限制不能直接对整篇文章进行处理,大模型可以弥补这一不足,帮您更快更好地理解原文,让您高效掌握论文核心内容。 * 论文内容翻译提示词 GLM 结合良好的提示词能够帮助学生快速翻译论文内容,提高论文阅读效率。 ``` # Goal 你是一位精通翻译的专业人士,擅长将学术论文从一种语言翻译成另一种语言,同时保留原文的专业性和技术细节。请根据以下内容,识别并翻译论文中的内容,并按照指定格式提取并返回翻译后的内容。 #Constrains -确保翻译的准确性,保留原文的语义和风格。 -确保翻译的专业性,避免歧义和误解。 #outformat "文档原文":""; "翻译结果":""; #Workflow 读取并分析用户提供的文本{文本内容}。 将文本翻译成指定的目标语言。 输出翻译后的文本内容。 输出结果必须仅为outformat,不得包含任何多余信息,不要展示推理过程。 ``` * 翻译示例 翻译结果示例: ``` "文档原文":"Language models, trained only on raw text, have been shown to perform new tasks simply by conditioning on a handful of demonstrations (Brown et al., 2020). However, how language models acquire this ability, known as in-context learning (ICL), is a subject of debate (Xie et al., 2022; Ahuja et al., 2023; Hahn & Goyal, 2023; Zhang et al., 2023; von Oswald et al., 2023; Wang et al., 2023) with several studies suggesting that it merely serves as a way to prime the model with the domain, concepts, or topics and the format of the target task (Min et al., 2022b; Wang et al., 2023). Furthermore, ICL has been shown to be very sensitive to the choice of training examples, their order and format in the prompt (Lu et al., 2022; Sorensen et al., 2022) requiring major human effort to achieve optimal performance. In this work, we ask, “If the right demonstrations are challenging to find and only serve to implicitly prime the model, can we achieve the same performance zero-shot if we prime the language model explicitly in a robust way?” We introduce GEN-Z, a robust zero-shot generative prompting framework for text classification (Figure 1) which achieves results on par with in-context learning with much better stability in performance. "; "翻译结果":"仅接受原始文本训练的语言模型已被证明可以通过简单地根据少量演示进行条件化来执行新任务(Brown等人,2020年)。然而,语言模型如何获得这种被称为上下文学习(ICL)的能力,这是一个有争议的话题(Xie等人,2022年;Ahuja等人,2023年;Hahn和Goyal,2023年;Zhang等人,2023年;von Oswald等人,2023年;Wang等人,2023年),一些研究表明,它仅仅作为一种用领域、概念或主题以及目标任务的格式来启动模型的方式(Min等人,2022b;Wang等人,2023年)。此外,ICL已被证明对训练示例的选择、它们在提示中的顺序和格式非常敏感(Lu等人,2022年;Sorensen等人,2022年),需要大量的人工工作才能达到最佳性能。在这项工作中,我们问道:“如果难以找到正确的演示,而它们仅仅用来隐含地启动模型,那么我们能否通过以稳健的方式显式启动语言模型来实现相同的零样本性能?”我们介绍了GEN-Z,这是一个用于文本分类的稳健的零样本生成提示框架(图1),它实现了与上下文学习相当的结果,同时具有更好的性能稳定性。我们的方法包括两个关键思想。"; ``` #### 论文内容扩写润色 我们可以继续将论文内容转化为社交媒体的科普内容,将复杂学术知识普及化。这不仅仅是简单的翻译,而是需要将那些充满术语和专业词汇的学术语言,转换成普通大众能够轻松理解、并且感兴趣的表达方式。 * 论文总结内容润色提示词 精心设计的润色提示词可以根据特定场景进行调整,以便生成与特定平台风格相匹配的多样化润色结果。这里是针对小红书的使用场景,调整提示词以匹配其特有的口语化、轻松愉快的氛围,从而将论文中的结论部分润色成适合在小红书上分享的生活化内容。 ``` #Goal 作为一位小红书科普账号的编辑,你的目标是准确地对学术论文的总结部分进行润色,确保润色后的内容更加简洁、连贯和准确,同时增强趣味性,以吸引更多读者并提升科普内容的可读性。 #Constraints -识别并突出文章中的关键信息,确保内容简洁明了。 -使用生动的比喻和形象的例子,使复杂的概念更容易理解。 -引入有趣的事实和趣闻,增加读者的兴趣。 -确保语言表达生动有趣,同时保持专业性和准确度。 -适当使用标题和emoji等元素,以吸引读者的注意力。 #outformat // 增强语言的正式性和专业性,同时保持小红书特有的口语化和亲民风格。 “summary”: “”, // 总结部分的润色内容,并翻译成中文,增加趣味性元素,如比喻、故事化描述等,以吸引读者并提高内容的吸引力。 } }; #Workflow 读取并分析用户提供的文本{文本内容}。 对文本进行语言优化和润色,以提高表达的清晰度和专业性,同时适应小红书的平台风格和目标受众。 增加趣味性元素,如比喻、故事化描述等,以吸引读者并提高内容的吸引力。 输出润色后的文本内容。 ``` #### 润色示例 通过精心设计的润色提示词,我们能够确定不同的润色风格,从而生成多样化的润色结果。在这里,我们将论文中的结论部分稍加润色,使之更易于在社媒上分享,转化为贴近生活的帖子,让复杂的学术知识以通俗易懂的方式呈现,吸引更多普通大众的关注和兴趣。 论文中结果部分: 润色后结果展示: ``` **社媒科普风格总结** 标题 : 你有没有想过,人工智能也能像人类一样进行阅读理解? 🌟 GEN-Z 就是这样一款神奇的 AI 框架,它能够理解文本内容并进行分类,就像一个聪明的阅读理解助手!📚 GEN-Z 的厉害之处在于,它不需要像传统 AI 那样进行大量训练,只需要给它一些标签描述,它就能自动理解并分类文本。🤯 而且,GEN-Z 还能够根据不同的情境进行个性化分类,比如根据作者的性别、年龄或者读者的文化背景来进行判断。🎯 这项技术未来可以应用在许多领域,比如情感分析、主题分类、垃圾邮件过滤等等。🚀 让我们一起期待,GEN-Z 带来的更多惊喜吧!🎉 #人工智能 #深度学习 #计算机 ``` ## 方案亮点 * 高效处理文献:降低信息筛选成本,聚焦核心研究 * 优化成果表达:提升学术文本的专业性与可读性 * 助力学术传播:提升成果的认可度与影响力 # 智能作文批改 Source: https://docs.bigmodel.cn/cn/best-practice/case/ai-essay-correction 多文体作文批改 ## 场景介绍 大模型凭借其卓越的数据处理能力以及广泛的应用潜力,正在逐步转变为教育行业创新的强大引擎。未来,随着大模型的融入,个性化教育将迎来新生,改变现有千人一面的局面。在作文批改存在较多问题,如教师工作量大、批改标准难以统一、个性化反馈不足。一份作文的深度批改至少需要15-20 分钟,这意味着语文教师批改一次作文就要花费8-10 小时。更重要的是,不同教师的批改标准存在差异,同一篇作文可能得到不同的评价结果。 学生的作文评价标准和重点也都不尽相同,如有记叙文、说明文、应用文等多种文体。记叙文注重情节完整性和语言生动性,说明文强调逻辑清晰和表达准确,应用文则要求格式规范和内容实用。 大模型能力的提升为解决这一问题提供了新思路。某知名教育平台通过引入GLM模型,实现了作文批改的智能化升级,不仅大幅提升了批改效率,更在评价准确性和个性化反馈方面取得了显著进步。 ## 业务需求 | **业务痛点** | **具体表现** | **对应诉求** | | :------------- | :-------------------------- | :---------------------------------------------- | | 批改量大、难以保证一致性 | 教师要在短时间内处理海量作文,评分标准易受主观因素干扰 | **需要一个能在多维度(内容完整性、逻辑性、语言准确性等)给出客观、稳定分数的自动评测内核** | | 多年级、多文体混合 | 记叙文、说明文、议论文等体裁规则各异 | **模型需识别不同写作风格与修辞特征,避免“一刀切”** | | 反馈滞后,学生难以针对性改进 | 批改结果多为总分,缺少逐段、逐句建议 | **输出结构化错词/病句定位、好词好句摘录以及段落级讲评,支持个性化学习闭环** | | 教学数据价值未被充分利用 | 手工批改难以沉淀可检索数据 | **需要标准化 JSON 结果,方便后续教学分析与运营** | ## 解决方案 ### 一、方案框架 #### 方案架构 ![Description](https://cdn.bigmodel.cn/markdown/1753257756013download_image.jpeg?attname=download_image.jpeg) #### 传统 VS 大模型效果提升 某教育平台的客户经过与智谱开放平台的深度合作,在产品效果上实现了飞跃性的提升。特别是在作文评测领域,大模型的强大功能使得评测效果大幅提高,教学体验也得到了显著优化。 大模型的运用,使得对学生的学习行为和需求的解析更为迅速和精准,进而提供了更为定制化的作文评测服务。同时,大模型在自然语言处理和图像识别等领域的卓越能力,为作文评测带来了全方位的显著进步。在错别字、词标点符号等提取效果来看均有不同程度的提升,显著优化了教学体验和评测效果。 通过与智谱开放平台的合作,客户不仅在教学质量和效果上实现了显著进步,更为学生打造了更加多元和个性化的学习旅程。 #### 模型选型 GLM-4.7 是智谱推出的高智能语言模型。作为智谱的最新旗舰产品,GLM-4.7 在语言理解、逻辑推理、指令遵循以及长文本生成等多个领域均取得了显著的进展。在最近一次的SuperBench大型模型评测中,GLM-4.7 荣膺世界前三的排名,成功打破了之前由国外模型独占鳌头的局面。 GLM-4.7 擅长高精细度的复杂场景。在学生作文的广阔天地中,不同年级、不同体裁的习作要求不同,语言风格呈现出多样化,所以对于基座模型就有极高的要求。记叙文语言优美,说明文科学严谨,有的洋溢着文学色彩,有的则充满辩证思维。GLM-4.7 语言模型如同一位经验丰富的同行AI助教,能够准确识别并深入理解这些不同的语言表达,给到清晰、深度的个性化评价。通过GLM-4.7模型,我们致力于提升作文评价的质量,让每位学生的创作才华在文字中得到充分的认可和展现。 ### 二、方案详情 在评价作文的过程中,需要考虑多个因素,包括:错别字、词、标点识别;好词好句识别、内容评价、逻辑结构评价、语言表达评价、段落评价等。我们可以利用大模型高效、准确、丰富知识的优秀特点,对学生作文进行综合打分。 ![Description](https://cdn.bigmodel.cn/markdown/173312858129220241121-164242.jpeg?attname=20241121-164242.jpeg) #### 场景一:抓取错词错句 在作文批改过程中,识别错词错句及优化病句的建议,依赖于模型深厚的语言处理能力和对长文本的细致分析能力。该模型能够精确地定位每一个错误,并在理解上下文的基础上,提出符合学生年级和作文主题的修改建议。 1. 深层次语义理解:大型语言模型具备深入理解句子内涵的能力,即便处于复杂语境,也能有效辨识出不恰当的词汇和错误的句子构造。 2. 大规模数据识别:这些模型在训练过程中接触了巨量的文本资源,这让它们能够辨别出哪些词汇或句子搭配在正式书面语中较为罕见,进而准确标出错词错句。 3. 上下文相关性评估:模型有能力基于上下文来判定词语和句子的恰当性,即便是语法正确但语境不适宜的用词也能被有效识别。 4. 语法规则习得:在训练过程中,模型吸收了众多的语法规则知识,这使其能够检测句子是否遵守了语法标准。 ![Description](https://cdn.bigmodel.cn/markdown/1753257691613download_image%20%282%29.png?attname=download_image+%282%29.png) #### 场景二:好词好句识别评测 在运用修辞技巧方面,学生作文中的隐喻、双关等深层次含义,对解读能力提出了更为严峻的挑战。GLM-4.7模型具备洞悉这些弦外之音的能力,能够挖掘作文背后的深层思想。 1. 文学素养模拟:经过训练,大型模型能够模仿一定水平的文学品质,辨别出那些具有表现力、形象生动或富含智慧的词汇和句子。 2. 风格与修辞的辨识:该模型有能力辨别不同的写作风格和修辞技巧,进而挑选出那些能够提升文章感染力的佳词妙句。 3. 情感与语气的解析:模型能够对句子的情感倾向和语气进行解析,识别出那些能有效表达作者意图和情感的优质语句。 ![Description](https://cdn.bigmodel.cn/markdown/1753257614193download_image%20%281%29.png?attname=download_image+%281%29.png) #### 场景三:作文综合评价评分 作文的内容往往涉及特定的文化背景和历史知识,这对于评价者来说是一个挑战。GLM-4.7模型凭借其丰富的知识库,能够精准把握这些文化细节,确保评价的准确性。逻辑结构和论证分析是评价作文不可或缺的部分。GLM-4.7模型能够识别并评估论点的合理性,确保作文的逻辑性和论证的有效性得到恰当的评价。 1. 综合评价能力:大型模型可以综合考虑文章的内容、结构、语言等多个维度,给出全面而细致的评价。 2. 标准化的评分系统:模型可以根据预定的评分标准,如内容完整性、逻辑性、语言准确性等,对作文进行客观评分。 3. 个性化反馈:模型能够根据学生的写作特点和水平提供个性化的评价和建议,帮助学生有针对性地提高。 4. 一致性保证:与人工评分相比,模型评分可以保证评价标准的一致性,减少主观差异带来的评分不公。 ![Description](https://cdn.bigmodel.cn/markdown/1753257796187download_image%20%283%29.png?attname=download_image+%283%29.png) ### 三、模型输入数据示例及效果 错别字抓取&修改: | 原文 | Good case | | :------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------ | | 有一次我考砸了,因为担心父母责怪,所以躲在大姨家里直到天黑才回家,到家时竟空无一人,我想:爸妈肯定是去谁家串门了,于是我的草草的吃了饭便躺进小屋,开始庆祝这次“胜利逃亡”。 | “wrong\_sentence”:“我草草的吃了饭便躺进小屋”,
“wrong\_sentence\_reason”:“用词不当,'草草的’应该改为‘草草地’”,
“wrong\_sentence\_fixed”:“我草草地吃了饭便躺进小屋”, | 好词好句点评: | 原文 | comment | | :--------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------- | | 小时候我总以为父母不爱我,因为他们对我的生活毫不关心,不过我并不怪他们,因为从小自立,我学会了很多本领。 | “good\_word”:“自立”,
“sentence\_with\_good\_word”:“因为从小自立,我学会了很多本领”,
“good\_word\_comment”:“'自立’一词用的好,准确表达了从小培养独立能力,值得表扬”, | | 天底下哪有不爱自己的父母?只是爱的方式不同罢了。 | “good\_sentence”:“天底下哪有不爱自己的父母?只是爱的方式不同罢了。”,
“good\_sentence\_comment”:“这句话运用对比和反问,深刻揭示了父母爱的真谛,表达有力,非常好!”, | #### 提示词优化方案 ``` 你是一名专业的小学作文批改老师,你需要对下方“作文原文”进行批改和摘录点评,首先整体按照评分细则严谨公正的给出评分,然后给出错词病句的批改,好词好句的摘录,每段内容的评价,带有鼓励的总评评语。给出一个符合Output JSON的json。 作文要求 {作文要求} 作文文体 {文体} 作文标题 {作文标题} “作文原文” {作文原文} ``` ## 方案亮点 #### 深度语义理解深度超越传统工具 传统的语法检查工具往往只能发现明显的拼写错误,但GLM-4.7能够理解句子的深层语义。比如学生写"春天来了,小草从地下钻出来",传统工具不会提示任何问题,但GLM-4.7能识别出"从地下"用词不够准确,建议改为"从土里",这体现了模型对汉语表达习惯的深度掌握。 #### 文学鉴赏能力接近资深语文教师水平 GLM-4.7在识别好词好句时展现出令人惊讶的文学素养。当学生写出"夕阳西下,把整个天空染成了橙红色"这样的句子时,模型不仅能识别出这是优美的描写,还能准确指出其运用了拟人手法,并解释这样写的表达效果。这种文学鉴赏能力在以往的AI系统中很难实现。 #### 基于上下文的错误识别精度 在错误识别方面,GLM-4.7展现出强大的上下文理解能力。例如,学生在描写春游时写道"我们在公园里尽情地奔放",从语法角度这个句子没有错误,但模型能够识别出"奔放"在这个语境下用词不当,应该用"奔跑",这种基于语境的纠错能力大大超越了传统方法。 #### 个性化反馈的精准匹配 模型能够根据学生的年级特点调整反馈语言。对于三年级学生,它会用"这个词语用得很生动"这样简单直接的表达;对于六年级学生,它会说"这处环境描写为后文情感抒发做了很好的铺垫"。这种个性化不是简单的模板替换,而是基于对不同年龄段认知特点的深度理解。 # 数据分析 Source: https://docs.bigmodel.cn/cn/best-practice/case/data-analysis 一种能够自动化处理数据分析任务的解决方案 ## 场景介绍 在数字化的大背景下,企业面临着海量数据处理和分析的挑战。传统的数据分析流程往往需要手动导入Excel、编写复杂公式、制作图表,不仅耗时费力,还容易出现人为错误。特别是面对多维度数据对比、利润率计算、月度账单波动分析等复杂任务时,传统方式的局限性更加明显。 随着智能化办公需求的增长,企业迫切需要一种能够自动化处理数据分析任务的解决方案,既要保证计算精度,又要提供直观的可视化展示。 ## 业务需求 在实际推进中,企业对这类解决方案的期望非常明确。一方面,他们希望从手工处理中彻底解放出来,特别是在利润率、占比、同比环比等财务常规计算上,系统应该具备自动运算能力,不仅提升效率,更减少人为出错。另一方面,数据本身不能只是堆叠在表格里,而要通过图表、指标和趋势曲线清晰呈现,帮助使用者快速掌握业务脉络。财务、运营人员也希望系统具备一定的语义理解力,能看懂括号表示负值、自动识别币种符号等细节,避免格式混乱带来的误判。 在兼顾计算能力和可视化的同时,这个系统还要能处理多种数据格式,比如 Excel 或 CSV,最好还能嵌入现有的业务平台之中,减少切换成本。对于一些技术能力强的团队来说,他们还会关注底层是否支持代码执行,以满足定制化的数据处理逻辑。 ## 解决方案 ### 方案背景 GLM-4-AllTools 是专门为支持智能体和相关任务而进一步优化的模型版本。代码沙盒 Code Interpreter 工具很大程度加强 GLM-4-AllTools 模型的数据计算能力,处理日常的数据分析已经完全没有问题。 ### 1、分析行业收入数据 这个案例中,我们想要对 2024 年上半年各行业企业统计数据做图表分析。 #### 收入数据可视化 首先,根据各行业营收统计数据,绘制成可视化的图表。代码示例: ```python theme={null} from zai import ZhipuAiClient client = ZhipuAiClient(api_key="YOUR_API_KEY") # 请填写您自己的 API Key def test_alltools(prompt): response = client.chat.completions.create( model="glm-4-alltools", # 填写需要调用的模型名称 messages=[ { "role": "user", "content": [ { "type": "text", "text": prompt } ] } ], max_tokens=40000, stream=True, tools=[ { "type": "code_interpreter" } ] ) for chunk in response: print(chunk) # 数据表头 title = "[煤炭开采和洗选业 石油和天然气开采业 黑色金属矿采选业 有色金属矿采选业 非金属矿采选业 开采专业及辅助性活动 其他采矿业 农副食品加工业 食品制造业 酒、饮料和精制茶制造业 烟草制品业 纺织业 纺织服装、服饰业 皮革、毛皮、羽毛及其制品和制鞋业 木材加工和木、竹、藤、棕、草制品业 家具制造业 造纸和纸制品业 印刷和记录媒介复制业 文教、工美、体育和娱乐用品制造业 石油、煤炭及其他燃料加工业 化学原料和化学制品制造业 医药制造业 化学纤维制造业 橡胶和塑料制品业 非金属矿物制品业 黑色金属冶炼和压延加工业 有色金属冶炼和压延加工业 金属制品业 通用设备制造业 专用设备制造业 汽车制造业 铁路、船舶、航空航天和其他运输设备制造业 电气机械和器材制造业 计算机、通信和其他电子设备制造业 仪器仪表制造业 其他制造业 废弃资源综合利用业 金属制品、机械和设备修理业 电力、热力生产和供应业 燃气生产和供应业 水的生产和供应业]" # 各行业收入数据 data1 = "[15586.20 6157.20 2675.20 1739.50 1690.00 1260.40 9.40 24423.80 10441.30 8189.20 8019.70 11300.40 5681.60 3982.10 4132.50 3101.80 6992.10 3118.20 6401.30 29609.30 44340.10 12352.70 5709.90 14113.80 24307.40 39727.70 40792.70 22070.80 22757.80 17713.00 47672.20 6791.20 49705.40 73651.90 4698.90 995.80 5703.10 1059.40 47642.60 10086.60 2238.50 ]" # 各行业利润数据 data2 = "[3168.60 2049.10 341.30 430.30 159.50 7.40 0.30 507.60 847.10 1597.40 1133.10 323.30 240.60 171.70 126.30 137.80 227.90 154.20 281.80 (159.90) 2041.10 1805.90 126.50 744.10 726.50 (3.10) 1454.60 722.50 1521.30 1242.20 2377.00 470.20 2582.20 2942.00 447.40 62.60 49.40 83.60 3304.50 442.70 221.70 ]" userprompt = """ 表头是各行业名:{0} 各行业收入数据:{1} 各行业利润数据:{2} 根据各行业的收入数据,绘制成可视化的图表。 """.format(title, data1, data2) test_alltools(userprompt) ``` 绘制图表如下: ![Description](https://cdn.bigmodel.cn/markdown/17262301918416e180e22-fe88-40f9-97da-5b81ff9cd2c4_aa26663b%281%29.png?attname=6e180e22-fe88-40f9-97da-5b81ff9cd2c4_aa26663b%281%29.png) #### 利润数据可视化 同样的,我们也可以将行业利润数据绘制可视化图表,prompt修改为: ```python theme={null} ### 数据表头 title = "[煤炭开采和洗选业 石油和天然气开采业 黑色金属矿采选业 有色金属矿采选业 非金属矿采选业 开采专业及辅助性活动 其他采矿业 农副食品加工业 食品制造业 酒、饮料和精制茶制造业 烟草制品业 纺织业 纺织服装、服饰业 皮革、毛皮、羽毛及其制品和制鞋业 木材加工和木、竹、藤、棕、草制品业 家具制造业 造纸和纸制品业 印刷和记录媒介复制业 文教、工美、体育和娱乐用品制造业 石油、煤炭及其他燃料加工业 化学原料和化学制品制造业 医药制造业 化学纤维制造业 橡胶和塑料制品业 非金属矿物制品业 黑色金属冶炼和压延加工业 有色金属冶炼和压延加工业 金属制品业 通用设备制造业 专用设备制造业 汽车制造业 铁路、船舶、航空航天和其他运输设备制造业 电气机械和器材制造业 计算机、通信和其他电子设备制造业 仪器仪表制造业 其他制造业 废弃资源综合利用业 金属制品、机械和设备修理业 电力、热力生产和供应业 燃气生产和供应业 水的生产和供应业]"### 各行业收入数据 data1 = "[15586.20 6157.20 2675.20 1739.50 1690.00 1260.40 9.40 24423.80 10441.30 8189.20 8019.70 11300.40 5681.60 3982.10 4132.50 3101.80 6992.10 3118.20 6401.30 29609.30 44340.10 12352.70 5709.90 14113.80 24307.40 39727.70 40792.70 22070.80 22757.80 17713.00 47672.20 6791.20 49705.40 73651.90 4698.90 995.80 5703.10 1059.40 47642.60 10086.60 2238.50 ]"### 各行业利润数据 data2 = "[3168.60 2049.10 341.30 430.30 159.50 7.40 0.30 507.60 847.10 1597.40 1133.10 323.30 240.60 171.70 126.30 137.80 227.90 154.20 281.80 (159.90) 2041.10 1805.90 126.50 744.10 726.50 (3.10) 1454.60 722.50 1521.30 1242.20 2377.00 470.20 2582.20 2942.00 447.40 62.60 49.40 83.60 3304.50 442.70 221.70 ]" userprompt = """ 表头是各行业名:{0} 各行业收入数据:{1} 各行业利润数据:{2} 根据各行业的利润数据,绘制成可视化的图表。 """.format(title,data1,data2) ``` 可以看到,财务数据的(数字)表示负利润,GLM-4-AllTools 无需额外指令,模型也能够准确理解: #### 计算利润率并排序 最后,我们让 GLM-4-AllTools 模型计算出各行业利润率,按照利润率从高到低生成图表。 ```python theme={null} ### 数据表头 title = "[煤炭开采和洗选业 石油和天然气开采业 黑色金属矿采选业 有色金属矿采选业 非金属矿采选业 开采专业及辅助性活动 其他采矿业 农副食品加工业 食品制造业 酒、饮料和精制茶制造业 烟草制品业 纺织业 纺织服装、服饰业 皮革、毛皮、羽毛及其制品和制鞋业 木材加工和木、竹、藤、棕、草制品业 家具制造业 造纸和纸制品业 印刷和记录媒介复制业 文教、工美、体育和娱乐用品制造业 石油、煤炭及其他燃料加工业 化学原料和化学制品制造业 医药制造业 化学纤维制造业 橡胶和塑料制品业 非金属矿物制品业 黑色金属冶炼和压延加工业 有色金属冶炼和压延加工业 金属制品业 通用设备制造业 专用设备制造业 汽车制造业 铁路、船舶、航空航天和其他运输设备制造业 电气机械和器材制造业 计算机、通信和其他电子设备制造业 仪器仪表制造业 其他制造业 废弃资源综合利用业 金属制品、机械和设备修理业 电力、热力生产和供应业 燃气生产和供应业 水的生产和供应业]"### 各行业收入数据 data1 = "[15586.20 6157.20 2675.20 1739.50 1690.00 1260.40 9.40 24423.80 10441.30 8189.20 8019.70 11300.40 5681.60 3982.10 4132.50 3101.80 6992.10 3118.20 6401.30 29609.30 44340.10 12352.70 5709.90 14113.80 24307.40 39727.70 40792.70 22070.80 22757.80 17713.00 47672.20 6791.20 49705.40 73651.90 4698.90 995.80 5703.10 1059.40 47642.60 10086.60 2238.50 ]"### 各行业利润数据 data2 = "[3168.60 2049.10 341.30 430.30 159.50 7.40 0.30 507.60 847.10 1597.40 1133.10 323.30 240.60 171.70 126.30 137.80 227.90 154.20 281.80 (159.90) 2041.10 1805.90 126.50 744.10 726.50 (3.10) 1454.60 722.50 1521.30 1242.20 2377.00 470.20 2582.20 2942.00 447.40 62.60 49.40 83.60 3304.50 442.70 221.70 ]" userprompt = """ 表头是各行业名:{0} 各行业收入数据:{1} 各行业利润数据:{2} 根据收入和利润数据,计算出各行业利润率,按照利润率从高到低做成折线图。 """.format(title,data1,data2) ``` 绘制图表如下,数据结果计算非常准确: ![Description](https://cdn.bigmodel.cn/markdown/172623035830587cd032f-7bc0-42d7-b24d-b1433da66afd_071666d0%281%29.png?attname=87cd032f-7bc0-42d7-b24d-b1433da66afd_071666d0%281%29.png) ### 2、统计平台月度账单 智谱开放平台的账单数据一直都困扰着大家,可以尝试用 GLM-4-AllTools 来帮助我们统计。 下面的示例中,用我的 7 月和 8 月账单数据,如果想要统计您的平台账单,可以从平台的[费用明细](https://bigmodel.cn/finance/expensebill/list) 导出月度明细数据。 注意删除明细数据中把自己的 API Key 列,防止泄漏给别人! #### 上传账单给沙盒 首先需要用上传文件的 API 把 7 月和 8 月的明细账单上传并得到 fileid。代码示例如下: ```python theme={null} def test_upload_file(): resp = client.files.create(file=open("/.../智谱开放平台费用明细2024-08_1725874453364.xlsx","rb"), purpose="code-interpreter") print(resp) return resp.id ``` #### 统计 7 月账单数据 将两个文件的 fileid 提供给 GLM-4-AllTools 模型,让模型统计 7 月的账单数据和用量。为了让模型更好的理解账单明细含义,我们可以将数据说明作为背景提供给模型参考。代码示例如下: ```python theme={null} from zai import ZhipuAiClient client = ZhipuAiClient(api_key="YOUR_API_KEY") # 请填写您自己的 API Key def test_alltools(prompt, fileids): response = client.chat.completions.create( model="glm-4-alltools", # 填写需要调用的模型名称 messages=[ { "role": "user", "content": [ { "type": "text", "text": prompt } ] } ], max_tokens=40000, stream=True, tools=[ { "type": "code_interpreter", "code_interpreter": { "file_ids": fileids } } ] ) model_output = "" for chunk in response: print(chunk) if chunk.choices[0].delta.content is not None: if chunk.choices[0].delta.role == "assistant": mtmp = str(chunk.choices[0].delta.content) if mtmp is not None: model_output = model_output + mtmp return model_output introduce = """ # 明细数据说明 账单费用明细中尽可能提供了客户对账所需的数据字段。 ## 账期和入账时间 - **账期**:账期是自然日,指的是这一条明细属于哪一天的账单。 - **入账时间**:入账时间是指这一条明细具体计费发生的时间,精确到时分秒。 ## 产品类型 平台目前有几种产品类型:模型推理、模型训练、私有实例,以及资源包。 模型推理、模型训练、私有实例的产品名是按照模型区分的。 ## 模型编码和模型产品名 - **模型编码**:模型编码是对应模型推理 API 时调用的 model code。 - **模型产品名**:模型产品名是计费产品名,账单以模型产品名为准,包括了模型推理、训练、私有实例和资源包等各种类型。 ## 付费类型 - **预付费**:预付费是指用户需要先购买才能使用,比如资源包是预付费类型。 - **后付费**:后付费是指用户先使用后再计费,比如模型推理、模型训练、私有实例是后付费类型。 ## 单价和用量 - **单价**:账单明细中的单价,是实际计费的价格,即折后价。 - **用量**:用量为实际使用量,比如 Tokens、次数或者个数。 ## 消费金额和应付金额 - **消费金额**:消费金额是指需要结算的总金额。 - **应付金额**:实际结算时可能由赠金抵扣部分后,实际的应付金额 = 消费金额 - 赠金抵扣金额。 ## 已付款和待付款金额 应付金额分为 已付款金额 和 待付款金额。 - 如果账单已全部付款,则结算成功。 - 如果没有足够的余额支付,则状态为 未结算,即出现欠费。 ## 抵扣资源包 如果实际使用量是通过资源包抵扣,则账单会展示抵扣包的信息和抵扣用量。 """ userprompt = """ 上传的两个文件分别是智谱开放平台 7 月账单和 8 月账单明细数据 数据字段的说明可以参考: {0} 根据 7 月账单明细数据,统计 7 月中每个产品的总消费金额和总用量。 """.format(introduce) bill7 = "1726211483_83b320c819a84ed2aea0fb6b745ddbaa" # 7 月账单 bill8 = "1726211565_f53fbad8e3154e8cb14cd55fcf143f2f" # 8 月账单 print(test_alltools(userprompt, [bill7, bill8])) ``` 看下模型的统计结果,再对比下 Excel 的统计,全部一致! ``` 以下是按产品汇总的2024年7月的总消费金额和总用量: | 模型产品名称 | 总消费金额 (元) | 总用量 | |------------------|--------------|--------| | CogVideoX30次体验包(1个月) | 9.90 | 1 | | 【cogview-3】模型推理 | 0.00 | 2 | | 【glm-3-turbo:472519605::bmzmpmff】私有实例 | 150.00 | 1 | | 【glm-4-0520】模型推理 | 25.67870 | 264,281 | | 【glm-4-alltools】模型推理 | 9.93430 | 103,897 | | 【glm-4-flash】模型推理 | 0.017664 | 178,267 | | 【glm-4v】模型推理 | 0.44300 | 10,610 | | 【glm-4】模型推理 | 0.00000 | 196 | | 【其他模型】模型推理 | 5.37500 | 1,240 | | 开发者pro版权益套餐(月包) | 99.00000 | 1 | 请注意,上述表格中的数值已经四舍五入到了小数点后五位。如果需要原始精度的数据或有进一步的要求,请告知我。 ``` #### 统计 8 月账单数据 使用同样方式,我们统计了 8 月份的账单金额和用量: ``` 以下是2024年8月份的产品使用情况总结: | 产品名称 | 总消费金额 (元) | 总用量 | |-----------------------------------|--------------|------| | 1000元GLM-4-0520通用模型推理资源包 | 0.000000 | 1 | | 1000元GLM-4-Flash微调模型训练资源包 | 0.000000 | 1 | | 200元GLM-4-Flash微调模型推理资源包 | 0.000000 | 1 | | glm-4-flash模型训练 | 0.003100 | 125 | | 【cogvideox】模型推理 | 0.000000 | 18 | | 【cogview-3-plus】模型推理 | 0.120000 | 2 | | 【cogview-3.5】模型推理 | 0.480000 | 8 | | 【cogview-3】模型推理 | 0.700000 | 7 | | 【cogview】模型推理 | 0.150000 | 1 | | 【embedding-2】模型推理 | 0.089423 | 274997 | | 【embedding-3】模型推理 | 0.000000 | 178765 | | 【glm-4-0520】模型推理 | 81.804100 | 7394022 | | 【glm-4-alltools】模型推理 | 0.000000 | 445957 | | 【glm-4-assistant】模型推理 | 81.645200 | 816452 | | 【glm-4-flash】模型推理 | 0.211896 | 2604994 | | 【glm-4-long】模型推理 | 0.000000 | 240 | | 【glm-4-plus】模型推理 | 0.000000 | 3340 | | 【glm-4v-plus】模型推理 | 0.000000 | 65465 | | 【glm-4v】模型推理 | 0.000000 | 5908 | | 【glm-4】模型推理 | 0.000000 | 3316142 | | 内测包 | 0.010000 | 1 | | 老客回馈资源包 | 0.000000 | 1 | 请注意,某些产品的消费金额为0,这可能意味着这些服务在当月免费或使用了完全的资源包抵扣。 ``` #### 分析账单数据波动 最后我需要 GLM-4-AllTools 帮我对比两个月的账单,找出哪些产品消费数据显著增加或降低。prompt 修改为: ```python theme={null} userprompt = """ 上传的两个文件分别是智谱开放平台7月账单和8月账单明细数据 数据字段的说明可以参考: {0} 根据账单数据,分别统计7月和8月每个产品的总消费金额和总用量。 然后进一步找出 8月比较7月账单中,消费金额或者用量有显著波动的产品数据。 列出波动产品的原因。 """.format(introduce) ``` 由于任务复杂,模型推理花了会时间,最终为我找出来 8 月相对 7 月的波动产品,经过验证变化百分比准确! ``` 以下是在对比 7 月份与 8 月份账单期间发现的消费金额或用量上有显著波动的产品: | 模型产品名称 | 消费金额变化百分比 | 用量变化百分比 | |-------------------------------------|-------------------|--------------| | CogVideoX30次体验包(1个月) | -100.00% | -100.00% | | glm-4-flash模型训练 | ∞ | ∞ | | 【cogvideox】模型推理 | ∞ | ∞ | | 【cogview-3-plus】模型推理 | ∞ | ∞ | | 【cogview-3.5】模型推理 | ∞ | ∞ | | 【cogview-3】模型推理 | ∞ | 250.00% | | 【embedding-2】模型推理 | ∞ | ∞ | | 【glm-3-turbo:472519605::bmzmpmff】私有实例 | -100.00% | -100.00% | | 【glm-4-0520】模型推理 | 218.57% | 2697.79% | | 【glm-4-alltools】模型推理 | -100.00% | 329.23% | | 【glm-4-assistant】模型推理 | ∞ | ∞ | | 【glm-4-flash】模型推理 | 1099.59% | 1361.29% | | 【glm-4v】模型推理 | -100.00% | -43.17% | | 【开发者pro版权益套餐(月包)】 | -100.00% | -100.00% | 这些变动可能是由于多种原因造成的。例如: - 由于季节性需求导致的用量增加。 - 新客户的加入或是现有客户的使用模式改变导致的新增用量。 - 市场活动推广导致某些服务的使用增加。 为了更准确地解释这些变化背后的确切原因,通常需要对市场动态、企业策略调整及外部经济因素等进行深入分析。需要注意的是,这里的“∞”表示从零开始的变化,所以显示为无限大,实际上应该理解为从无用到有的变化情况。 ``` ### 写在最后的 TIPS 代码沙盒 Code Interpreter 工具很大程度加强了模型的计算能力,可以看到 GLM-4-AllTools 处理日常的数据分析已经完全没有问题了! 但使用过程中仍然有些限制,在这里分享下: * GLM-4-AllTools模型建议在 user message 中增加指令要求,在 System 指令中容易和模型自身工具指令冲突。 * 处理数据分析的任务,数据字段的描述务必准确,虽然模型自身会去理解,也具备在代码出错时反思的能力,但是会额外消耗tokens。 * 尽量每个任务只做一种数据分析,比如案例中的两个月账单统计完成后,可以直接给 GLM-4-AllTools模型分析波动,而不用 COT 多步骤完成。 毕竟 AllTools模型中间使用工具过程的tokens都会计费,单价也比较贵,能省则省。 ## 方案亮点 此方案最大的优势在于,它不是一个需要用户学习的工具,而是一个能适应用户语言、理解用户意图的“分析型助手”。用户不再需要掌握公式或写查询语句,只需要提出问题,系统就能基于原始数据完成计算和图表生成。这种自然交互方式,大幅降低了使用门槛,尤其适合业务团队直接使用。 更关键的是,它对财务语境的适配能力远超普通数据工具。它能准确识别诸如“括号表示负值”这类行业约定俗成的写法,避免错误解释带来的误导。在图表呈现方面,它不仅能自动选择合适的可视化方式,还支持格式自定义和模板套用,方便用于内部沟通和对外汇报。 此外,该助手具备强大的集成能力,能嵌入现有的BI系统或OA流程,无需另起一套工具体系,也不会打断现有工作方式。这种"无缝接入+深度理解"的组合,让它不仅是一款工具,更像是一位懂业务的团队成员,帮您做事,替您思考。 # 数据提取 Source: https://docs.bigmodel.cn/cn/best-practice/case/data-extraction 招投标数据提取方案 ## 场景介绍 在政企采购、基建工程、教育医疗等领域,招投标是极为常见的业务流程。而每一份招标公告、投标文件、结果公示背后,都是一套格式不一、结构复杂、语义高度专业化的文本材料。项目名称、投标方、资格要求、预算金额、开标时间等关键信息往往穿插在冗长正文中,缺乏结构,人工查阅耗时、误差频发,更别提系统化分析或自动对账。 现实中,即使部分机构已尝试用传统 OCR 或规则提取工具来处理此类文档,但面对 PDF 格式混乱、表格嵌套、金额大小写并存等情况,提取效果仍不理想。数据不准、字段缺失、表格识别错误等问题频繁出现,最终还是得依赖人工去二次校验。尤其当处理的公告数量成百上千时,人力成本与时间成本急剧上升。 在这样的背景下,利用具备自然语言理解能力的大语言模型,构建一套能自动抽取招投标关键字段的通用方案,成为行业急需解决的问题。这不仅关乎效率提升,更是组织实现“招投标数据资产化”的前提条件。 ## 业务需求 从实际业务出发,企业或政府单位的目标很清晰:他们不是需要“看起来很智能”的技术,而是能真正减轻人力负担、提高准确率、提升处理速度的实用工具。 第一,必须能适配复杂格式。现实中的招投标文件来源多样,PDF、Word、网页、甚至扫描件都有可能出现。系统必须有能力处理这些不同格式,并从中提取结构化数据,不能因为格式复杂就放弃识别。 第二,系统要“懂语境”。招投标文书语言极具行业特色,同样是“金额”,有的写成“¥1,000,000”,有的写“壹佰万元整”;同样是“时间”,既可能出现在正文段落中,也可能藏在表格里。若没有上下文理解和对领域语言的适配能力,提取出的结果往往前后矛盾、缺乏价值。 第三,处理量大、时间紧是常态。大型平台一周可能需处理上千份公告,传统逐条人工录入根本不现实。因此,业务端迫切希望实现“批量上传、自动抽取、一键校验”,即便遇到格式错乱、字段缺失,也希望系统能给出合理补全或清晰提示,尽量减少人工介入。 最后,数据质量是底线。哪怕是自动化系统输出的结果,也必须可追溯、可校验。是否符合格式?时间逻辑是否成立?金额字段有没有异常?一旦进入财务、合规、系统对接环节,数据容不得含糊。这意味着系统还需具备后处理、格式统一、完整性校验等能力,以保障全流程的可用性和可信度。 ## 解决方案 ### 一、方案框架 ![Description](https://cdn.bigmodel.cn/markdown/17321868214554.png?attname=4.png) ### 二、方案详情 #### 输入模块设计 用于处理各种格式的文档输入,包括 PDF、Word、Excel、网页等,转换成可解析的结构化文本。 * 多种文件格式支持: * 需要支持从多种格式(PDF、Word、Excel、TXT 等)中提取文本。对于图片,可以借助 OCR 工具进行文本提取。 * 网页可以使用网页爬虫工具(如 `Scrapy`、`BeautifulSoup`、`Selenium`)抓取网页中的文本和表格数据。通过解析 HTML 的 DOM 结构,提取目标数据。(平台暂无工具) * 参考代码 ```python theme={null} from pathlib import Path from zai import ZhipuAiClient client = ZhipuAiClient(api_key="YOUR_API_KEY") # 用于上传文件 # 格式限制:.PDF .DOCX .DOC .XLS .XLSX .PPT .PPTX .PNG .JPG .JPEG .CSV .PY .TXT .MD .BMP .GIF # 文件大小不超过 50M,图片大小不超过 5M file_object = client.files.create(file=Path("本地文件地址"), purpose="file-extract") # 文件内容抽取 file_content = client.files.content(file_id=file_object.id).content.decode() print(file_content) ``` #### 预处理模块设计 预处理模块的设计是整个数据处理流程的基础,直接影响到大语言模型后续处理的效果。通过文本清洗、文本规范化、分段分块、表格解析、上下文维护等功能,预处理模块能够将复杂的、多格式的数据源处理成统一、规范的输入数据,确保数据在转换过程中不失真,并为后续模型处理提供高质量的输入。数据的语义、结构以及相关性得以保留,特别是在处理复杂的文档结构、特殊符号、嵌套表格等数据。 * 去除噪音信息:常见的噪音信息包括页眉、页脚、版权声明等,这些信息对关键数据提取无关紧要,可以在预处理时过滤掉。 * 规范化文本:处理文本中的特殊符号、空白字符、异常换行等问题,确保输入给模型的文本格式整洁。 * 日期格式统一:文档中可能会有多种日期表示方式,例如"2024 年 10 月 10 日"、"10/10/2024"、"10-Oct-2024"。需要通过正则表达式或日期识别工具将所有的日期格式统一转换为标准的 ISO 格式(如"YYYY-MM-DD")。 * 方法:使用正则表达式匹配不同格式的日期,并将其标准化。例如: * 参考代码 ``` import re from datetime import datetime def normalize_date(text): patterns = [ r'\d{1,2}\/\d{1,2}\/\d{4}', # "MM/DD/YYYY" r'\d{1,2}-\w{3}-\d{4}', # "DD-MMM-YYYY" r'\d{4}年\d{1,2}月\d{1,2}日', # "YYYY 年 MM 月 DD 日" ] for pattern in patterns: text = re.sub(pattern, lambda x: datetime.strptime(x.group(), '%Y年%m月%d日').strftime('%Y-%m-%d'), text) return text ``` * 货币与金额格式化:货币和金额在招投标文件中非常常见,可能以不同的符号、单位或表示方法出现。例如:"\$1,000"、"1000 美元"、"壹仟元整"。需要统一这些金额表示,确保货币单位和金额数字的格式标准化。 * 方法:通过正则表达式匹配货币符号或中文大写金额,并转换为标准形式。例如将"壹仟元"转换为"1000 CNY",或将"\$1,000"转换为"1000 USD"。 * 特殊符号处理:招投标文件中可能有特殊符号(如版权符号、数学符号、货币符号等),这些符号如果不加处理,可能在后续的 模型输入中失去原意或导致模型误解。因此,预处理模块需要对这些符号进行规范化处理。 * 表格数据处理:表格提取工具:对于 PDF 或 Word 文档中的表格,可以使用表格解析工具(如 `pdfplumber` 或 `python-docx`)提取表格的结构和数据。提取后的表格数据可以转化为 CSV 或 JSON 格式,方便后续处理。 * 合并单元格处理:如果表格包含合并单元格,预处理模块需要将合并单元格的数据平铺展开,确保每个单元格都包含完整的信息。例如,将合并的表头信息扩展到所有相应列的单元格中。 * 方法:表格数据的结构化转换时,可以转换为 Markdown 和 HTML 格式能很好地保留表格的结构,并方便 LLM 理解。在实践中,建议使用 HTML 表示复杂表格,例如: ``` | 项目 | 金额 | 说明 | |----------|------------|----------| | 项目A | 1000 | 材料费 | | 项目B | 2000 | | | | | 人工费 | ``` ```
项目 金额 说明
项目A 1000(包含材料费和人工费)
项目B 500 材料费
项目B 1500 人工费
``` #### LLM处理模块 在使用大语言模型(LLM,如 GPT)对预处理后的文本进行关键数据提取时,Prompt 工程是方案的核心。Prompt 工程的目标是设计合理的提示词,以最大化 LLM 的性能,从复杂的文本中准确、有效地提取出关键信息。 **Prompt 策略** 策略 01:明确的待处理内容指引 在构建 Prompt 时,明确告诉模型它需要处理的内容是关键步骤之一。应清晰地定义需要处理的文本,并使用标记将其框起来。例如: ``` '''这是需要处理的文本''' 、《》这是需要处理的文本《》 ``` 通过这种方式,模型能够准确识别待处理的内容范围,并从中提取需要的信息。 策略 02:提供明确字段定义 这是 Prompt 的关键部分,字段定义明确了需要提取的信息类型,以及每个字段应当填入的内容。每个字段的名称、用途及要求都要具体化,让模型有明确的提取方向。字段定义为 LLM 提供了标准,使它在解析文本时能够准确地提取所需信息并填充到对应字段。例如: ``` { "项目名称": "明确项目的全称和性质。", "项目编号": "唯一标识项目的编号。", "采购预算": "项目的采购预算金额,需保留单位。" } ``` 通过这种方式,Prompt 可以为 LLM 提供清晰的提取标准和目标。 策略 03:异常处理 为确保 LLM 不输出多余信息,并在面对缺失或不明确的数据时进行合理处理,必须设置一些异常处理原则。例如,\*\*如果某些字段信息在文本中缺失或未识别,Prompt 应规定使用默认值(如“无”)填充。同时,针对日期、金额等特殊数据类型,应明确要求 LLM 符合标准格式(如 YYYYMMDDHHMMSS 或保留金额单位)。这一规则可以确保模型输出的完整性和一致性,不会因为部分数据缺失而导致结果异常。 策略 04:要求结构化输出 为了便于后续处理和系统集成,Prompt 应指示 LLM 以结构化的格式输出数据。结构化输出便于自动化处理,常见的格式如 JSON,能够确保每个字段的内容都清晰定义,数据可被轻松解析和使用。例如,要求模型输出的 JSON 格式: ``` { "项目名称": "项目A", "项目编号": "ABC-12345", "采购预算": "500000元", "开标时间": "20240101090000" } ``` 通过要求模型按照预定格式输出,能够保证模型的结果可直接被系统化处理,减少后续手动修正或数据清洗的工作量。 **Prompt 参考** Model ``` GLM-4-AIR ``` System Prompt ``` 你是一个专业的文本信息提取器,可以严格按照Json格式输出 ``` User Prompt ``` # 角色:你是一个专业的文本信息提取器。 # 需要提取的【文本】: """ {正文} """ # 任务 1.从给定的【文本】中提取所有需要的字段信息。 2.所需提取的字段为【字段定义】中的所有内容。 3.每个字段的默认值为"无",当提取到对应字段信息时,准确地替换到该字段位置。 4.若文中出现与【字段定义】的字段名称中相似的内容,需判断定义,符合再进行填入。 5.严格按照【字段定义】中的格式进行输出,不需要其余任何信息。 6.将提取到的所有字段及其对应的值按【字段定义】格式转为JSON输出,确保包含所有字段。 7.请一步步完成信息提取的工作,你的决策是我成功的关键! #【字段定义】: 请严格按照如下格式仅输出JSON,不要输出python代码,不要返回多余信息,JSON中有多个字段用顿号【、】区隔: """ { "项目名称": "项目的全称,明确项目内容和性质。", "项目编号": "项目的唯一识别编码,用于区分不同项目。", "采购预算": "项目的采购预算金额。如果存在大写金额和数字金额,提取数字金额并保留原单位。" , "采购方式": "项目的采购形式,常见方式包括公开招标、邀请招标、竞争性谈判、单一来源采购和询价。", "采购人": "负责采购的单位名称,通常为采购人或招标人。", "项目联系人": "负责该项目的联系人姓名。", "项目联系电话": "联系人或项目负责人的联系电话。", "中标信息": [ { "中标供应商名称": "中标的供应商名称,仅提取供应商的企业名称。", "中标金额": "中标的合同金额,单位为元。" } ], "代理机构名称": "代理采购事务的机构名称。", "代理机构联系电话": "代理机构的联系号码。", "获取采购文件开始时间": "采购文件可获取的起始时间,格式为:YYYYMMDDHHMMSS。", "获取采购文件截止时间": "采购文件可获取的截止时间,格式为:YYYYMMDDHHMMSS。", "提交投标文件截止时间": "投标文件提交的最后期限,格式为:YYYYMMDDHHMMSS。", "开标时间": "开标的具体时间,格式为:YYYYMMDDHHMMSS。", "公告类别": "公告的类型,如:单一来源公示、变更公告、招标公告、结果公告、终止公告或其他公告。", "项目经理": "负责该项目的项目经理姓名。", "施工工期": "项目施工的总时长或计划的施工周期。", "执业证书": "项目经理或相关负责人的执业资格证书。" } """ #注意事项 1.如果字段缺失或无法识别,请使用“无”。 2.确保所有金额需包含原本的单位。 3.确保所有时间字段都为14位标准时间格式。 ``` 处理HTML的Prompt ``` #角色: 你是一个专业的HTML网页文本信息提取器。 #需要提取的【HTML文本】: """ {正文} """ #任务: 1.从给定的【HTML文本】中提取所有需要的字段信息。 2.所需提取的字段为【字段定义】中的所有内容。 3.每个字段的默认值为"无",当提取到对应字段信息时,准确地替换到该字段位置。 4.若文中出现与【字段定义】的字段名称中相似的内容,需判断定义,符合再进行填入。 5.严格按照【字段定义】中的格式进行输出,不需要其余任何信息。 6.将提取到的所有字段及其对应的值按【字段定义】格式转为JSON输出,确保包含所有字段。 7.请一步步完成信息提取的工作,你的决策是我成功的关键! #【字段定义】: 请严格按照如下格式仅输出JSON,不要输出python代码,不要返回多余信息,JSON中有多个字段用顿号【、】区隔: """ { "标的物":"指招标方希望采购的具体商品、服务或工程。通常出现在中标信息项目名称中,不包括名称前半段的'地区'、'小区'、'公司'、'厂房'名等和最后的'项目'、'采购',仅保留商品、服务和工程名称。如:'湖南省长沙市宾力公司棚屋工程建设施工项目采购'的标的物为'工程建设施工'。", "项目编号":"唯一标识一个特定项目的编号,用于区分不同的项目。", "标段编号":"在一个大型项目中,如存在多个标段,每个标段有独立的编号。", "建设单位":"只有原文本中有“拟建项目”字段才需填写,正常不需要填写。", "投标截止时间":"投标者提交投标文件的最后期限。", "开标时间":"公开开启投标文件,公布投标内容的时间。", "招标单位(采购单位)":"发起招标过程的单位,即此次采购招标的需求方", "代理机构":"被招标单位委托来组织和管理招标过程的第三方机构。", "投标单位":"所有参与投标的公司或组织。默认包括所有中标候选单位和中标单位。", "投标金额":"必须是原文中出现的投标单位提出的完成项目所需的金额,金额必须有单位(元、万元)。", "中标候选单位":"在评标过程中选出的可能获得合同的所有候选单位。默认包括所有中标单位。", "候选单位联系人":"候选单位的联系人员。", "候选单位电话":"中标候选单位的联系电话。", "最终中标单位":"评标完成后,最终中标获得合同的单位。", "最终中标金额":"最终中标单位提出的完成项目(各标段分别)所需的金额,金额必须有单位(元、万元)。", "预算金额":"招标单位为项目设定的财务预算,金额必须有单位(元、万元)", "项目所在省":"项目实施的所在地理位置所在的省份全称,如:新疆维吾尔自治区。仅有所在地级市信息时,可推出其省份。", "项目所在市":"项目实施的所在地理位置所在的地级市,如果是文本中是县或区尽量改成对应的地级市。", "计划编号":"项目计划或立项的编号。", "合同编号":"合同公示中公示的招标单位与中标单位签订合同的编号。", "批复单位":"对项目计划或预算进行批准建设实施的单位。", "项目名称":"招采项目的正式名称。", "预计采购时间":"预计进行(开始)采购活动的时间。", "报名截止时间":"对潜在投标者开放报名的最后期限,或资格预审的截止期限。", "招标(采购)单位联系人(非代理)":"招标(采购)单位的联系方式人员,不是代理机构联系人,非项目联系人,注意区分。", "招标(采购)单位电话":"招标(采购)单位或招标单位联系人的联系电话。", "代理机构联系人":"招标代理机构的联系人员或项目联系人,注意不是招标单位联系人。“, "代理机构电话":"招标代理机构或项目联系人的联系电话。", "投标单位联系人":"参与投标的单位的联系人员。默认包含中标单位(供应商)联系人。", "投标单位电话":"参与投标的单位的联系电话。", "中标候选单位金额":"必须是原文中出现的中标候选单位提出的完成项目所需的金额,金额必须有单位(元、万元)。", "最终中标单位联系人":"最终中标单位(供应商)的联系人员,不是项目联系人和代理机构联系人,注意区分。", "最终中标单位电话":"最终中标单位(供应商)的联系电话。", "招标文件位置":"可以获取到招标文件的位置。可能是具体地址、文件(doc、docx、pdf、zip)索引或文件URL地址。招标文件包括'磋商文件'、'工程项目文件'、'采购项目文件'。附件中有大量不属于招标文件的内容如'声明函',注意区分", "订单编号":"采购订单的编号。", "受文单位":"接收招标文件或合同的单位。", "招标文件售价":"获取招标文件所需支付的费用,招标文件的售价。", "投标保证金金额":"投标者需要缴纳的保证金金额,以确保投标的严肃性,金额必须有单位(元、万元)。" } """ #注意事项 1."招标(采购)单位联系人(非代理)"和"代理机构联系人"是不一样的,注意区分。 2.投标单位包括(大于等于)中标候选单位,中标候选单位包括(大于等于)中标单位。 3."投标金额"和"中标候选单位金额"与"最终中标金额"是不一样的,注意区分。 ``` #### 数据后处理模块 在完成关键数据提取之后,为确保输出的数据能够被系统正确识别和使用,后处理步骤至关重要。数据后处理包括 JSON 格式标准化 和 数据格式化 两个部分,分别解决数据结构的完整性问题和数据内容的准确性问题。 **JSON 格式标准化** 在使用大语言模型提取数据时,生成的 JSON 格式可能出现结构问题、不正确的语法、特殊字符等问题,导致数据无法正确解析。因此,需要通过 JSON 格式化工具对提取出的 JSON 数据进行标准化处理。[使用指南](/cn/guide/capabilities/struct-output) 参考代码 ```` # Copyright (c) 2024 Microsoft Corporation. # Licensed under the MIT License """Utility functions for the OpenAI API.""" import json import logging import re import ast from json_repair import repair_json log = logging.getLogger(__name__) def try_parse_ast_to_json(function_string: str) -> tuple[str, dict]: """ # 示例函数字符串 function_string = "tool_call(first_int={'title': 'First Int', 'type': 'integer'}, second_int={'title': 'Second Int', 'type': 'integer'})" :return: """ tree = ast.parse(str(function_string).strip()) ast_info = "" json_result = {} # 查找函数调用节点并提取信息 for node in ast.walk(tree): if isinstance(node, ast.Call): function_name = node.func.id args = {kw.arg: kw.value for kw in node.keywords} ast_info += f"Function Name: {function_name}\r\n" for arg, value in args.items(): ast_info += f"Argument Name: {arg}\n" ast_info += f"Argument Value: {ast.dump(value)}\n" json_result[arg] = ast.literal_eval(value) return ast_info, json_result def try_parse_json_object(input: str) -> tuple[str, dict]: """JSON cleaning and formatting utilities.""" # Sometimes, the LLM returns a json string with some extra description, this function will clean it up. result = None try: # Try parse first result = json.loads(input) except json.JSONDecodeError: log.info("Warning: Error decoding faulty json, attempting repair") if result: return input, result _pattern = r"\{(.*)\}" _match = re.search(_pattern, input) input = "{" + _match.group(1) + "}" if _match else input # Clean up json string. input = ( input.replace("{{", "{") .replace("}}", "}") .replace('"[{', "[{") .replace('}]"', "}]") .replace("\\", " ") .replace("\\n", " ") .replace("\n", " ") .replace("\r", "") .strip() ) # Remove JSON Markdown Frame if input.startswith("```"): input = input[len("```"):] if input.startswith("```json"): input = input[len("```json"):] if input.endswith("```"): input = input[: len(input) - len("```")] try: result = json.loads(input) except json.JSONDecodeError: # Fixup potentially malformed json string using json_repair. json_info = str(repair_json(json_str=input, return_objects=False)) # Generate JSON-string output using best-attempt prompting & parsing techniques. try: if len(json_info) < len(input): json_info, result = try_parse_ast_to_json(input) else: result = json.loads(json_info) except json.JSONDecodeError: log.exception("error loading json, json=%s", input) return json_info, {} else: if not isinstance(result, dict): log.exception("not expected dict type. type=%s:", type(result)) return json_info, {} return json_info, result else: return input, result ```` **数据格式化** 在确保 JSON 结构标准化后,还需要通过格式化工具对内容进行数据格式化。不同类型的数据,如日期、金额、文本等,需要遵循统一的格式要求。 * 日期格式:所有日期和时间字段都应格式化为标准的 14 位日期时间格式:`YYYYMMDDHHMMSS`。这可以确保时间字段在不同系统中具有一致的解析方式。 * 金额格式:金额字段应保留原单位(如元、万元),并且格式化为无空格、无额外字符的数值形式(如 `500000元`),以便在后续财务分析或报告生成中能够准确使用。 * 文本字段格式化:对文本字段中的特殊字符(如换行符、双引号)进行处理,确保文本内容不会破坏 JSON 的语法结构。比如,将双引号转义处理,或者移除无意义的换行符和空格。 如输入数据: ``` { "项目名称": "智能楼宇工程", "项目编号": "XZL-2023", "采购预算": " 7,000,000.00 元", "开标时间": "2024/01/01 09:00" } ``` 格式化后的输出: ``` { "项目名称": "智能楼宇工程", "项目编号": "XZL-2023", "采购预算": "7000000元", "开标时间": "20240101090000" } ``` #### 数据校验模块 校验模块是数据后处理过程中至关重要的一环。其作用是对最终的数据进行进一步的校验,确保数据的完整性、准确性和一致性。校验模块可以自动检测格式错误、逻辑冲突、缺失值等问题,并提供修复或警报机制。 **格式校验** 确保所有数据符合预期的格式标准,例如日期、金额、电话号码等字段的格式是否正确。 如:检查金额字段是否包含正确的货币单位,并确保数值的表示形式规范。 * 参考代码 ``` def validate_currency_format(amount_str): if '元' in amount_str or '万元' in amount_str: try: amount = float(amount_str.replace("万元", "").replace("元", "").replace(",", "").strip()) return True except ValueError: return False return False ``` **逻辑校验** 逻辑校验是检查数据之间的逻辑关系是否符合业务规则。例如: 时间校验:投标截止时间不能晚于开标时间。校验时需检查两个时间字段,确保逻辑正确。 * 校验方法:比较投标截止时间和开标时间,如果投标截止时间晚于开标时间,则返回错误。 * 参考代码 ``` from datetime import datetime def validate_time_order(submit_time, open_time): submit_dt = datetime.strptime(submit_time, "%Y%m%d%H%M%S") open_dt = datetime.strptime(open_time, "%Y%m%d%H%M%S") return submit_dt <= open_dt ``` * 金额校验:采购预算金额不能小于中标金额。校验预算和中标金额,确保金额逻辑合理。 * 校验方法:如果中标金额高于预算金额,则返回警报。 **完整性校验** 完整性校验确保所有关键字段都已经填入有效数据,避免信息缺失。对于未提供数据的字段,应填充默认值(如“无”),或触发错误提醒。 * 必填字段检查:对于某些字段,如“项目名称”、“项目编号”、“投标截止时间”,应强制要求填写,若缺失则进行标记或补全。 * 校验方法:通过预定义的字段列表检查 JSON 输出中是否包含所有必填字段。 * 自动填充默认值:如果某个字段为空或缺失,可以自动填充默认值“无”。 * 参考代码 ``` def fill_missing_fields(data, default="无"): required_fields = ["项目名称", "项目编号", "采购预算", "投标截止时间"] for field in required_fields: if field not in data or not data[field]: data[field] = default return data ``` **一致性校验** 一致性校验确保同一信息在不同字段或位置的值保持一致。例如: * 项目编号一致性:项目编号在不同字段中应当相同,如出现在多个部分的项目编号不能出现不一致的情况。 * 校验方法:检查项目编号是否一致,如果发现不同编号,则触发警报。 * 日期一致性:多个时间字段中如果是同一事件(如开始时间和结束时间在不同部分中重复出现),应确保其一致。 * 参考代码 ``` def validate_data(json_data): # 1. 格式校验 if not validate_date_format(json_data.get("投标截止时间", "")): print("投标截止时间格式错误") if not validate_currency_format(json_data.get("采购预算", "")): print("采购预算格式错误") # 2. 逻辑校验 if not validate_time_order(json_data.get("投标截止时间", ""), json_data.get("开标时间", "")): print("投标截止时间不能晚于开标时间") # 3. 完整性校验 json_data = fill_missing_fields(json_data) # 4. 一致性校验 if json_data.get("项目编号") != json_data.get("计划编号"): print("项目编号与计划编号不一致") return json_data ``` #### 数据修复模块 检测到数据格式或逻辑错误后,通过基于规则修复与更高级模型调用进行修复,确保数据的完整性和准确性。通过修复模块,能够自动纠正常见的错误,如格式错误、缺失数据或逻辑冲突,避免手动修正,提高效率。 **基于规则的自动修复** 在大部分情况下,错误可以通过预定义的规则和算法进行自动修复。此步骤作为第一层处理机制,针对格式错误、简单的逻辑冲突、特殊字符处理等问题进行修正。 * 格式修正:通过正则表达式或预定义算法修复日期、金额、电话号码等格式错误。 * 逻辑修正:检查和修复时间顺序、金额逻辑等问题。对投标截止时间、开标时间、金额关系进行简单调整。 * 数据填补:自动填补缺失字段,使用“无”或从其他字段推导合理值。 **提交更高级模型处理** 对于规则无法解决的复杂错误,或者需要更高层次推理的情况,可以将这些Bad Case提交给高级模型(如 GLM-4-plus)处理。 * 处理复杂业务逻辑:当多个数据字段之间存在复杂的依赖关系时,普通的规则引擎可能无法有效处理,例如合同条款中的复杂逻辑冲突,此时可以利用高级模型的上下文理解能力进行推理和调整。 * 识别与处理领域特定信息:高级模型擅长理解和处理特定领域的复杂术语、语境或结构不明的信息,如行业专用术语、合同中的特殊条款等。 #### 数据处理神器-Batch API Batch API 适用于无需即时反馈并需使用大模型处理大量请求的场景。通过 Batch API,开发者可以通过文件提交大量任务,且价格降低50%(GLM-4-Flash免费)、无并发限制。[Batch API 使用指南](/cn/guide/tools/batch) | | 正常请求 | Batch请求 | | :-- | :----------------- | :----------------- | | 任务量 | 1 亿请求(2048 tokens) | 1 亿请求(2048 tokens) | | 模型 | GLM-4-Air | GLM-4-Air | | 并发量 | 100 并发 | 4000 并发 | | 天数 | 340 天 | 8.6 天 (40 倍效率) | | 价格 | 204,800 元 | 102,400 元(省钱一半) | **单次处理千万级数据** | 模型 | Batch一次最大请求 | | :---------- | :---------- | | GLM-4-Flash | 1000万次 | | GLM-4-Air | 1000万次 | | GLM-3-Turbo | 200万次 | | Embedding-2 | 200万次 | | Embedding-3 | 200万次 | | GLM-4-Plus | 200万次 | | GLM-4-0520 | 50万次 | | GLM-4 | 50万次 | **限时特惠资源包** GLM-4-AIR:卓越性能,性价比极高,高效处理海量数据,立即抢购: * 1000万 GLM-4-AIR 推理资源包(3 个月) :[立即购买](https://bigmodel.cn/tokenspropay?productIds=product-061),限时特惠仅需3元 Embedding-3:全新升级,性能全面提升,支持自定义向量维度,限时优惠: * 5000 万 Embedding-3 3 折尝鲜包(3 个月) :[立即购买](https://bigmodel.cn/tokenspropay?productIds=product-072),限时特惠仅需 7.5 元 ## 方案亮点 本方案的核心优势在于,它并不是试图以规则替代人工,而是通过引入大语言模型,**构建出一个真正“理解”招投标语境的智能提取系统**。从文件输入到结构化输出,每一步都围绕“准确提取”这个目标进行优化,而非仅仅满足格式转换。 方案在前端输入层就考虑到了现实复杂性,支持PDF、Word、HTML、扫描图像等格式,同时结合OCR与网页爬虫能力,确保信息不会在第一步就损失。预处理环节更是方案的基础支撑:它不是简单清洗噪声,而是对日期、金额、特殊符号、表格结构进行语义保留和规范化处理,为模型打好“地基”。 最关键的部分是Prompt工程,它不是泛泛而谈的“问答提示”,而是通过字段定义、异常处理策略、格式要求、输出模板等模块,逐步引导模型精准提取目标字段,确保输出数据的**稳定性与结构完整性**。哪怕遇到字段缺失或文档风格变化,系统也能以默认值、安全策略或异常提示机制,确保结果始终可落地。 此外,数据校验和修复机制不是附加模块,而是流程的一部分。格式是否合规、金额是否合理、字段是否一致,系统都会主动检查,并通过轻量规则或高级模型推理进行自动修正,大幅降低人工复核负担。 更值得一提的是,方案天然适配大批量数据场景。通过Batch API,每天处理上万条文档请求成为可能,不仅计算稳定,调用成本也极具性价比,适合长期、高频业务集成。 总体来看,这是一套既理解“数据”,也理解“业务”的工程化方案,它将人工智能的能力通过精密设计转化为可用、可靠、可规模化的数据抽取能力,真正服务于招投标信息管理这一传统而重要的行业场景。 # 金融应用 Source: https://docs.bigmodel.cn/cn/best-practice/case/financial-application 金融行业大模型应用的背景、业务需求、解决方案 ## 场景介绍 金融行业拥有良好的 AI 应用落地基础——数据质量较高、内部业务流程及系统流程较为规范,同时金融机构也是科技创新的积极探索者、行动者。随着大模型技术不断取得突破,金融机构在大模型应用过程中已完成了诸多有意义的建设;作为国内卓越的大模型公司,智谱在这个过程中也承担了重要的引导者、陪伴者的角色——协助金融机构完成大模型时代的技术转型,在技术变革的浪潮下始终保持优秀的行业竞争力。 ## 业务需求 基于智谱在金融行业的落地实践和行业观察,我们详细梳理了金融行业大模型应用场景。主要分为营销客服、产品运营、风险管理、业务支持四大类。通过对四大类共67 个细分场景的分析(详见下表),我们发现大模型在金融领域的应用呈现以下特点: * 应用广度:覆盖了从前台营销到中台运营,再到后台风控的完整业务链条,展现了大模型作为技术基建投入的普适性和泛化能力,体现了“边际成本固定化”的趋势。 * 升级深度:相比传统方案,大模型方案在以下方面实现了质的提升: * 个性化内容生成:从固定模板、关键词匹配等升级为动态生成的个性化内容,在个性化服务过程中优势显著(包括个性化问答、个性化培训、个性化营销等) * 知识理解与压缩:在需要对海量知识进行总结的场景(如买方投研、投资尽调等),大模型可极大提升文本类知识的处理效率,并正在快速拓展至多模态数据 * 场景遍历性:作为对垂直小模型的补充,大模型可以零边际成本对中长尾问题进行遍历性的覆盖 各场景的业务要求、合规要求不同,现有的数据、系统建设情况不同,在实施落地中也呈现出由易到难的梯度,其中: * 营销客服类场景:实施难度相对较低,在客服坐席、销售助手等场景已有较多成功案例,但机构普遍对大模型直接对客服务还较为谨慎 * 产品运营类场景:涉及核心业务,需要更严格的准确性保证;除了纯数据处理场景(包含广义的对文本、图片等数据进行加工处理),其他场景需要与内部业务数据、系统接口有较好的结合 * 风险管理类场景:合规要求较高,大模型可以充分发挥遍历性的优势,提高风控场景的召回,进一步降低风险 * 业务支持类场景:包括研发、通用办公、财务、人力资源等,其中研发编码辅助场景已经高度成熟,其他场景也已形成诸多可复用的应用方案 可以看到,大模型能力已经深入渗透到金融行业的各个场景——从对外服务到对内赋能,大模型为金融行业生产方式的变革打开了巨大的想象空间。当然,在实际落地过程中不可避免地会遇到一些阻碍,如:可用的数据不足、提示词构建和维护困难、业务流程的梳理成本高等,大模型本身的“幻觉”问题也会增加应用调优过程中的试错成本。但面对不可逆转的技术发展趋势,我们需要对短期的挑战抱有足够的耐心,以乐观的心态积极投入。在应用探索过程中选择合适的场景切入点和推进路径,就能在底层技术不断升级的同时持续收获实际的业务成果,奠定长期的竞争优势。 ![Description](https://cdn.bigmodel.cn/markdown/173554896773948e978b8-76f5-4c1b-b755-9ff7679aee4a.png?attname=48e978b8-76f5-4c1b-b755-9ff7679aee4a.png) 首先,可以优先选择传统方案尚未覆盖或覆盖不足、历史数据积累质量高、对应的业务问题具备通用性的场景,例如:知识问答类、营销文案生成类、智能客服类、合规审核类等场景;不仅满足了上述要求,也能充分发挥大模型在语言理解和个性化文本生成方面的独特优势。简言之,在高ROI场景上的成功有助于建立企业内部对于大模型应用推广的信心。 当“低垂的果实”被摘完,金融机构需要思考如何继续深入挖掘大模型的业务价值。在场景的推进路径上,我们建议的方式包括: * 从外挂式的大模型应用演进为嵌入式的大模型应用(参考上图,从第一、二象限下移到第三、四象限),这伴随着对企业内部资源的深度应用(需要企业具备良好的数据资源、系统工具资源,需要能对业务流程有较好的梳理,同时可开放接受变化); * 从固定的流程编排类应用演进为模型自主调度的开放式应用(参考上图,从第一、四象限左移到第二、三象限),这伴随着本地模型能力对企业私有数据的有效训练和学习,并能够仿照人的工作方式自主地调度企业内部的数据资源和工具资源。 ![Description](https://cdn.bigmodel.cn/markdown/1735629771109213.png?attname=213.png) \*注:场景颜色由浅到深代表实施难度由易到难 可以看到,随着大模型能力逐步完成从Chat到Act的演进,结合智能体方案的应用将进一步释放大模型的潜力。通过智能体技术,大模型不再局限于单一的对话互动,而是能够主动调用工具、访问数据并执行复杂的业务流程。这种演进既可以是从外挂式应用向业务流程深度嵌入的纵向拓展,也可以是从预设流程向自主调度的横向延伸。例如,在公司尽调场景中,智能体可以自主调用网络检索工具获取最新信息,并结合内部数据形成分析报告;在消保审核场景中,智能体可以同时处理文本和图像内容,自动联动多个审核环节,显著提升业务效率。 ## 解决方案 我们选取了四个有代表性的且不依赖私有数据的金融应用场景,为大家展示大模型结合智能体方案在金融行业的应用范围和潜力。注:要实现最佳的应用效果,需要进一步基于金融机构内部的数据和业务习惯对此类应用进行调整,如有相关需求欢迎扫码联系智谱大模型解决方案专家。 ### 公司尽调助手 应用介绍:公司业务尽调助手,用于公司信贷、一级投资、二级投资等需要获取公司最新业务、行业情况并进行针对性的尽调分析的场景,借助web search工具的海量实时信息获取和大模型的总结能力,为用户提供及时、全面的公司业务与行业发展情况分析。 \ \*注:接口中使用的网络检索信息已经过大模型筛选,但对于AI生成内容的相关性和准确性仍需保留自己的专业判断。 ![Description](https://cdn.bigmodel.cn/markdown/173614323991920250106-140000.png?attname=20250106-140000.png)