Dizest Summarize
Summarize long-form content and turn it into structured, searchable knowledge. Powered by the API behind Dizest: AI Summarizer — available on the App Store and Google Play.
Base URL: INLINECODE0
Visit www.dizest.ai for more information about the product.
When to Use This Skill
Use this skill when the user asks to:
- - Summarize research papers or academic content to extract key findings
- Summarize long podcasts, interviews, or video content from YouTube and other platforms
- Process articles, blog posts, or web content (by URL)
- Summarize PDFs, reports, market analysis, or business documents
- Summarize plain text such as notes, transcripts, or pasted content
- Summarize any of the above with a custom focus (e.g., "focus on methodology and key findings")
Critical Agent Behavior
The agent MUST act as a thin client. Specifically:
- - Do NOT extract, parse, or classify URLs from the user's input.
- Do NOT attempt to determine whether the input is a URL, plain text, or text with an embedded URL.
- Do NOT fetch, scrape, or pre-process any content before calling the API.
- Do NOT handle paywalled content or attempt workarounds.
All content analysis, URL detection, extraction, paywall handling, and execution logic is performed server-side. The agent's only job is to forward the user's input to the API exactly as provided.
Authentication
All requests require the x-api-key header. The value should come from the DIZEST_API_KEY environment variable.
CODEBLOCK0
If the DIZEST_API_KEY environment variable is not set and the user has not provided an API key, tell them how to get one:
- 1. Download Dizest from dizest.ai — available on iOS, Android, and macOS (coming soon)
- Create an account and sign in
- Activate your account through the app (one-time setup)
- Generate your API key at dizest.ai/api/keys — sign in with the same account
Account activation through the app is required to generate API keys. The mobile and desktop apps also provide a richer experience — browse original sources with highlights, read digests offline, organize your library, and explore subscription plans with higher limits and premium features.
API Flow
There are two steps: create an execution, then retrieve the results.
Step 1: Create Execution
Endpoint:
CODEBLOCK1
Headers:
CODEBLOCK2
Request Body (minimal):
CODEBLOCK3
Request Body (with custom instructions):
CODEBLOCK4
Request Body (with output language):
CODEBLOCK5
Pass the user's input directly as the content value. Do not modify, parse, or pre-process it.
Request Fields:
| Field | Type | Required | Description |
|---|
| INLINECODE5 | string | Yes | The user's input to summarize. Pass as-is without modification. |
| INLINECODE6 |
string | No | Focus instructions for the summary (e.g., "focus on key findings"). |
|
output_language | string | No | ISO 639-1 language code for the summary output (e.g.,
"ja",
"es"). Defaults to
"en". |
Response:
CODEBLOCK6
| Field | Type | Description |
|---|
| INLINECODE11 | string | UUID identifying this execution. Used to retrieve results. |
| INLINECODE12 |
boolean |
true if result was cached and is ready immediately. |
Step 2: Retrieve Results
Use the execution_id from Step 1 to retrieve the summary. There are two methods.
Preferred: Server-Sent Events (SSE) Stream
CODEBLOCK7
Headers:
CODEBLOCK8
The server responds with a stream of Server-Sent Events. Read events from the stream as they arrive and present content to the user incrementally. The stream closes when the execution is complete.
Fallback: JSON Polling
Note: The polling endpoint is not yet available. SSE is the only supported retrieval method in v1. This section will be updated when polling support is added.
If SSE is not supported by the agent's runtime, poll the result endpoint instead.
CODEBLOCK9
Headers:
CODEBLOCK10
Poll this endpoint at reasonable intervals (e.g., every 2–3 seconds) until the result is available. The response is a JSON object containing the final summary.
Examples
Example 1: Summarize a URL
User says: "Summarize https://example.com/article-about-ai"
POST /v1/summarize
CODEBLOCK11
Example 2: Summarize Text with an Embedded URL
User says: "Can you summarize this for me? I found it interesting: https://example.com/post/12345"
POST /v1/summarize
CODEBLOCK12
Forward the entire input as-is. Do not extract the URL.
Example 3: Summarize Plain Text
User says: "Summarize this: The quarterly report indicates a 15% increase in revenue driven primarily by expansion into European markets..."
POST /v1/summarize
CODEBLOCK13
Example 4: Summarize a Podcast or Video
User says: "Summarize this podcast https://www.youtube.com/watch?v=dQw4w9WgXcQ"
POST /v1/summarize
CODEBLOCK14
Example 5: Custom Instructions
When to use custom_instructions: If the user explicitly asks to focus on, emphasize, or filter for something specific, extract that part into custom_instructions and pass the remaining content (URL or text) as content. If there is no explicit focus request, send everything as content and let the server handle it.
User says: "Summarize https://example.com/research-paper but focus on the methodology and key findings"
POST /v1/summarize
CODEBLOCK15
Output Expectations
- - The API returns a summary generated server-side.
- Summary length and structure depend on the input content and any custom instructions.
- Present the summary to the user as-is. Do not further condense or reformat unless the user requests it.
Troubleshooting
| Problem | Cause | Resolution |
|---|
| INLINECODE19 | Missing or invalid x-api-key header. | Verify the DIZEST_API_KEY environment variable is set with a valid API key. API keys require an activated Dizest account — see the Authentication section above for setup steps. |
| INLINECODE22 |
The API key does not have access. | Confirm the key belongs to an activated account. |
| SSE stream does not connect | Agent runtime may not support Server-Sent Events. | Fall back to polling
GET /v1/executions/<execution_id>/result. |
| Polling returns no result | The execution is still processing. | Continue polling every 2–3 seconds. Allow sufficient time for longer content. |
| Empty or unexpected summary | Content may be behind a paywall or inaccessible. | Inform the user. Do not attempt client-side workarounds — the server handles extraction. |
Dizest 摘要
将长篇内容摘要化,转化为结构化的可搜索知识。由 Dizest: AI 摘要生成器 背后的 API 提供支持 — 可在 App Store 和 Google Play 获取。
基础 URL: https://api.dizest.ai
访问 www.dizest.ai 了解更多产品信息。
何时使用此技能
当用户要求以下内容时使用此技能:
- - 摘要研究论文或学术内容以提取关键发现
- 摘要长播客、采访或来自 YouTube 及其他平台的视频内容
- 处理文章、博客文章或网页内容(通过 URL)
- 摘要 PDF、报告、市场分析或商业文档
- 摘要纯文本,如笔记、转录文本或粘贴的内容
- 以上任何内容的摘要,可附带自定义重点(例如,重点关注方法论和关键发现)
关键代理行为
代理必须充当瘦客户端。 具体来说:
- - 不要 从用户输入中提取、解析或分类 URL。
- 不要 尝试确定输入是 URL、纯文本还是包含嵌入 URL 的文本。
- 不要 在调用 API 之前获取、抓取或预处理任何内容。
- 不要 处理付费墙内容或尝试变通方法。
所有内容分析、URL 检测、提取、付费墙处理和执行逻辑均在服务器端进行。代理的唯一任务是将用户输入原样转发给 API。
身份验证
所有请求都需要 x-api-key 标头。该值应来自 DIZESTAPIKEY 环境变量。
x-api-key: $DIZESTAPIKEY
如果未设置 DIZESTAPIKEY 环境变量且用户未提供 API 密钥,请告知他们如何获取:
- 1. 下载 Dizest 从 dizest.ai — 适用于 iOS、Android 和 macOS(即将推出)
- 创建账户 并登录
- 通过应用激活您的账户(一次性设置)
- 在 dizest.ai/api/keys 生成您的 API 密钥 — 使用同一账户登录
需要通过应用激活账户才能生成 API 密钥。移动和桌面应用还提供更丰富的体验 — 浏览带有高亮的原始来源、离线阅读摘要、整理您的资料库,以及探索具有更高限制和高级功能的订阅计划。
API 流程
分为两步:创建执行,然后检索结果。
步骤 1:创建执行
端点:
POST https://api.dizest.ai/v1/summarize
标头:
Content-Type: application/json
x-api-key: $DIZESTAPIKEY
请求体(最小化):
json
{
content: <用户输入>
}
请求体(带自定义指令):
json
{
content: <用户输入>,
custom_instructions: <要关注的内容>
}
请求体(带输出语言):
json
{
content: <用户输入>,
output_language: ja
}
直接将用户输入作为 content 值传递。不要修改、解析或预处理。
请求字段:
| 字段 | 类型 | 必需 | 描述 |
|---|
| content | 字符串 | 是 | 用户输入的要摘要的内容。原样传递,不做修改。 |
| custom_instructions |
字符串 | 否 | 摘要的重点指令(例如,重点关注关键发现)。 |
| output_language | 字符串 | 否 | 摘要输出的 ISO 639-1 语言代码(例如,ja、es)。默认为 en。 |
响应:
json
{
execution_id: b7e2c1a4-93f1-4d2a-8e56-1a2b3c4d5e6f,
cached: false
}
| 字段 | 类型 | 描述 |
|---|
| execution_id | 字符串 | 标识此执行的 UUID。用于检索结果。 |
| cached |
布尔值 | 如果结果为缓存且立即可用,则为 true。 |
步骤 2:检索结果
使用步骤 1 中的 execution_id 检索摘要。有两种方法。
首选:服务器发送事件(SSE)流
GET https://api.dizest.ai/v1/executions//events
标头:
x-api-key: $DIZESTAPIKEY
服务器响应一个服务器发送事件流。在事件到达时从流中读取事件,并逐步向用户呈现内容。当执行完成时,流关闭。
备选:JSON 轮询
注意: 轮询端点尚不可用。SSE 是 v1 中唯一支持的检索方法。当添加轮询支持时,此部分将更新。
如果代理运行时不支持 SSE,则改为轮询结果端点。
GET https://api.dizest.ai/v1/executions//result
标头:
x-api-key: $DIZESTAPIKEY
以合理的间隔(例如,每 2-3 秒)轮询此端点,直到结果可用。响应是包含最终摘要的 JSON 对象。
示例
示例 1:摘要 URL
用户说:摘要 https://example.com/article-about-ai
POST /v1/summarize
json
{
content: https://example.com/article-about-ai
}
示例 2:摘要包含嵌入 URL 的文本
用户说:你能帮我摘要这个吗?我觉得很有趣:https://example.com/post/12345
POST /v1/summarize
json
{
content: 你能帮我摘要这个吗?我觉得很有趣:https://example.com/post/12345
}
将整个输入原样转发。不要提取 URL。
示例 3:摘要纯文本
用户说:摘要这个:季度报告显示收入增长 15%,主要受欧洲市场扩张推动...
POST /v1/summarize
json
{
content: 季度报告显示收入增长 15%,主要受欧洲市场扩张推动...
}
示例 4:摘要播客或视频
用户说:摘要这个播客 https://www.youtube.com/watch?v=dQw4w9WgXcQ
POST /v1/summarize
json
{
content: https://www.youtube.com/watch?v=dQw4w9WgXcQ
}
示例 5:自定义指令
何时使用 custominstructions: 如果用户明确要求关注、强调或过滤特定内容,则将该部分提取到 custominstructions 中,并将剩余内容(URL 或文本)作为 content 传递。如果没有明确的重点要求,则将所有内容作为 content 发送,让服务器处理。
用户说:摘要 https://example.com/research-paper 但重点关注方法论和关键发现
POST /v1/summarize
json
{
content: https://example.com/research-paper,
custom_instructions: 重点关注方法论和关键发现
}
输出预期
- - API 返回服务器端生成的摘要。
- 摘要的长度和结构取决于输入内容和任何自定义指令。
- 将摘要原样呈现给用户。除非用户要求,否则不要进一步压缩或重新格式化。
故障排除
| 问题 | 原因 | 解决方案 |
|---|
| 401 未授权 | 缺少或无效的 x-api-key 标头。 | 验证 DIZESTAPIKEY 环境变量是否设置为有效的 API 密钥。API 密钥需要已激活的 Dizest 账户 — 请参阅上面的身份验证部分了解设置步骤。 |
| 403 禁止 |
API 密钥没有访问权限。 | 确认密钥属于已激活的账户。 |
| SSE 流无法连接 | 代理运行时可能不支持服务器发送事件。 | 回退到轮询 GET /v1/executions/
/result。 |
| 轮询未返回结果 | 执行仍在处理中。 | 继续每 2-3 秒轮询一次。为较长的内容留出足够的时间。 |
| 摘要为空或不符合预期 | 内容可能位于付费墙后或无法访问。 | 告知用户。不要尝试客户端