面向 AI 助手:本页的 Markdown 版本位于 https://ark.volcengine.com/region:cn-beijing/docs/webpage-parsing-plugin-guide.md,全部文档索引见 https://ark.volcengine.com/llms.txt。

网页解析插件功能说明

网页解析插件可获取和解析 URL 链接下的标题和内容。支持用户快速提取和检索网页、PDF 等内容中有价值的信息。

基本信息#

  • 插件名称:网页解析。
  • 组件说明:
    • 一次调用最多可解析 3 个 URL 内容。
    • 支持网页、.pdf、.txt、.csv、.docx、.doc、.xlsx、.xls、.pptx、.ppt、.md、.mobi、.epub 格式文件的内容获取。
    • 当前支持接入 Doubao 系列拥有函数调用能力的模型,详见工具调用能力。
  • 默认限流:1 QPS;60 RPM。
  • 计费说明:限时免费;使用插件可能产生模型更多 Tokens 消耗。

功能优势#

  • 精准解析网页: 支持通过 URL 快速、准确地解析网页、.pdf、.txt、.csv、.docx、.doc、.xlsx、.xls、.pptx、.ppt、.md、.mobi、.epub 格式文件的内容,可接入模型进行高效使用。
  • 高效操作流程:用户仅需提供 URL 链接,即可完成网页的完整解析,无需繁琐复杂的操作步骤。

应用场景#

可高效满足广泛的业务需求,无论是内容聚合、市场分析还是自动化报告生成,本插件都能提供强大支持,接入大模型可助力业务决策和信息整合

  • 市场分析: 可用于解析网站信息,帮助企业进行市场趋势调研和竞品分析,为市场定位和策略制定提供支持
  • 新闻聚合: 整合来自不同内容源的最新新闻信息,形成信息概览
  • 学习教育: 获取教育资料和学术文章,支持学习教育场景下的高效学习和研究

基本用法#

通过零代码应用调用#

您可在控制台的直接创建带网页解析插件的应用,无需自己实现插件调用代码,详情请查看零代码应用操作指南。
后续您可通过应用(bot) API调用已添加网页解析插件的零代码应用。

自行实现插件调用#

您也可以自行通过大模型调用插件的代码,下面是示例代码。

非函数调用方式#

使用 arkitect 框架,可兼容不支持函数调用的模型。

需安装 arkitect 0.1.x 版本(同时要求 python 版本小于 3.12.0),pip install 'arkitect<0.2.0' --index-url https://pypi.org/simple

Python
from typing import AsyncIterable, Union
import asyncio

from arkitect.core.component.llm import BaseChatLanguageModel

from arkitect.core.component.llm.model import (
    ArkChatCompletionChunk,
    ArkChatParameters,
    ArkChatRequest,
    ArkChatResponse,
    Response,
)
from arkitect.core.component.tool import LinkReader, ArkToolResponse
from arkitect.telemetry.trace import task

# 替换为您的推理接入点 https://ark.volcengine.com/region:cn-beijing/docs/online-inference-standard#1739de09
endpoint_id = "<YOUR_ENDPOINT_ID>"

def prepare_prompt(link_resp: ArkToolResponse) -> str:
    prompt = "以下内容为用户输入网页及相关内容:"
    for url_data in link_resp.data.get("ark_web_data_list", []):
        prompt += f"网页链接:{url_data.get('url', '')}\\n网页Title:{url_data.get('title', '')}\\n网页内容:{url_data.get('content', '')}\\n\\n"

    prompt += "请总结并输出以上网页内容"
    return prompt

@task()
async def default_model_calling(
    request: ArkChatRequest,
) -> AsyncIterable[Union[ArkChatCompletionChunk, ArkChatResponse]]:
    parameters = ArkChatParameters(**request.__dict__)

    llm = BaseChatLanguageModel(
        endpoint_id=endpoint_id,
        messages=request.messages,
        parameters=parameters,
    )
    if request.stream:
        async for resp in llm.astream():
            yield resp
    else:
        yield await llm.arun()

@task()
async def link_reader(url: str) -> AsyncIterable[Response]:
    link_resp: ArkToolResponse = await LinkReader().executor(parameters={"url_list":[url]})

    prompt = prepare_prompt(link_resp)
    request = ArkChatRequest(
        # 替换模型为您需要使用的模型,https://ark.volcengine.com/region:cn-beijing/docs/model-list
        model="doubao-seed-2-1-pro-260915",
        stream=True,
        messages=[{"role": "user", "content": prompt}],
    )

    async for resp in default_model_calling(request):
        print(resp.choices[0].delta.content, end="", flush=True)


if __name__ == "__main__":
    # 替换为您需要解析的网页地址
    url = "https://www.toutiao.com/"
    asyncio.run(link_reader(url))

启动方式:

请将以下示例代码中的<ARK_API_KEY>替换为真实值。

Bash
export ARK_API_KEY=<ARK_API_KEY>
python3 main.py

结果预览:

Text
该网页内容丰富多样,涵盖众多领域资讯:
1. **时政要闻**:探讨总书记强调“经济大省挑大梁”原因;***
2. **科技动态**:直击“星舰”第八次试飞现场情况;***
3. **财经消息**:美股下跌英伟达市值蒸发、欧洲央行降息、《哪吒 2》票房等财经数据。
4. **生活常识**:探讨早晨吃水煮鸡蛋对身体的影响,尤其对肝不好人群的影响。
5. **企业动态**:滴滴四月份调整政策,***
6. **国际局势**:乌方称泽连斯基没给特朗普写信,***
函数调用方式#

模型需具备 函数调用能力,下面是示例代码。

需安装 arkitect 0.1.x 版本(同时要求 python 版本小于 3.12.0),pip install 'arkitect<0.2.0' --index-url https://pypi.org/simple

Python
import os
from typing import AsyncIterable, Union

from arkitect.core.component.llm import BaseChatLanguageModel

from arkitect.core.component.llm.model import (
    ArkChatCompletionChunk,
    ArkChatParameters,
    ArkChatRequest,
    ArkChatResponse,
    Response,
)
from arkitect.core.component.tool import LinkReader, ToolPool
from arkitect.launcher.local.serve import launch_serve
from arkitect.telemetry.trace import task

endpoint_id = "<YOUR_ENDPOINT_ID>"

@task()
async def default_model_calling(
    request: ArkChatRequest,
) -> AsyncIterable[Union[ArkChatCompletionChunk, ArkChatResponse]]:
    parameters = ArkChatParameters(**request.__dict__)
    ToolPool.register(LinkReader())

    llm = BaseChatLanguageModel(
        endpoint_id=endpoint_id,
        messages=request.messages,
        parameters=parameters,
    )
    if request.stream:
        async for resp in llm.astream(functions=ToolPool.all()):
            yield resp
    else:
        yield await llm.arun(functions=ToolPool.all())


@task()
async def main(request: ArkChatRequest) -> AsyncIterable[Response]:
    async for resp in default_model_calling(request):
        yield resp


if __name__ == "__main__":
    port = os.getenv("_FAAS_RUNTIME_PORT")
    launch_serve(
        package_path="main",
        port=int(port) if port else 8080,
        health_check_path="/v1/ping",
        endpoint_path="/api/v3/bots/chat/completions",
        clients={},
    )

启动服务:

请将以下示例代码中的<ARK_API_KEY>替换为真实值。

PowerShell
export ARK_API_KEY=<ARK_API_KEY>
python3 main.py

调用方式:

PowerShell
curl --location 'http://localhost:8080/api/v3/bots/chat/completions' \\
--header 'Content-Type: application/json' \\
--data '{
    "model": "doubao-seed-2-1-pro-260915",
    "messages": [
        {
            "role": "user",
            "content": "https://www.toutiao.com/ 这个网站讲了什么"
        }
    ]
}'

返回结果预览:

json
{
    "error": null,
    "id": "0217***",
    "choices": [
        {
            "finish_reason": "stop",
            "moderation_hit_type": null,
            "index": 0,
            "logprobs": null,
            "message": {
                "content": "\\n用户想获取网站内容,调用LinkReader/LinkReader函数获取信息。这是今日头条的网页信息,包含了多个热点事件和人物故事的讨论:\\n- **政策与建议**:全国人大代表李镇西建议将寒假设为法定节假日;\\n- **财经与商业**:多家企业发布动态,如巴菲特旗下伯克希尔·哈撒韦公司市值蒸发、苹果股价创新高、欧洲央行降息等;《哪吒2》票房突破146亿元。\\n- **科技与航空**:直捣“星链”第八次试飞现场,“悟空号”成功再现,但二级火箭失联;马斯克欲发射飞船接人,却遭美国宇航局拒绝。\\n- **人物故事**:介绍了超级富豪马斯克,虽身价高昂,但他自称像普通打工仔,成长经历坎坷,母亲梅耶·马斯克给予其重要支持;梅耶·马斯克一生传奇,48岁重新学习考试,60岁回归T台,69岁登上美国时代广场,她的自传《人生由我》鼓励人们积极面对生活。 ",
                "role": "assistant",
                "function_call": null,
                "tool_calls": null,
                "audio": null,
                "reasoning_content": null
            }
        }
    ],
    "created": 1741840746,
    "model": "doubao-seed-2-1-pro-260915",
    "object": "chat.completion",
    "usage": {
        "completion_tokens": 340,
        "prompt_tokens": 13116,
        "total_tokens": 13456,
        "prompt_tokens_details": {
            "cached_tokens": 0
        },
        "completion_tokens_details": {
            "reasoning_tokens": 0
        }
    },
    "bot_usage": null,
    "metadata": null
}