互联网搜索接口
基本介绍
模力方舟的互联网搜索接口能够从近百亿网页和生态内容源中搜索高质量世界知识,包括新闻、图片、百科、文库等多种类型的内容。
该接口提供统一的搜索入口,一次请求即可获取网页、图片、视频等多种类型的搜索结果,为您的应用提供全面的信息检索能力。
功能特点
- 海量内容源:从近百亿网页和生态内容中检索高质量信息
- 多媒体搜索:同时返回网页、图片、视频等多种类型的搜索结果
- 智能摘要:可选择性生成搜索结果的文本摘要,快速了解内容要点
- 时间筛选:支持按天、周、月、年等时间范围精准筛选搜索结果
- 丰富元数据:提供网站图标、发布时间、收录时间等详细信息
使用方法
POST https://api.moark.com/v1/web-search
在API调用时指定搜索关键词和相关参数,即可获取综合搜索结果。
认证方式
请参考 模力方舟 API 认证方式 。
请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| query | string | 是 | 搜索关键字或语句 |
| count | integer | 是 | 返回的搜索结果数量,范围1-50,默认为10 |
| summary | boolean | 否 | 是否在搜索结果中包含摘要,默认为false |
| freshness | string | 否 | 搜索指定时间范围内的网页,可选值:"noLimit"(默认)、"oneDay"、"oneWeek"、"oneMonth"、"oneYear" |
freshness 参数说明
| 值 | 说明 |
|---|---|
| noLimit | 不限时间范围(默认) |
| oneDay | 最近一天 |
| oneWeek | 最近一周 |
| oneMonth | 最近一个月 |
| oneYear | 最近一年 |
响应内容
响应字段说明
webPages(网页搜索结果)
| 字段 | 类型 | 说明 |
|---|---|---|
| webSearchUrl | string | 网页搜索的完整URL |
| totalEstimatedMatches | integer | 搜索匹配的网页总数估算值 |
| value | array | 网页搜索结果数组 |
| value[].name | string | 网页标题 |
| value[].url | string | 网页URL |
| value[].snippet | string | 网页内容简短描述 |
| value[].summary | string | 网页内容摘要(需开启summary参数) |
| value[].siteName | string | 网站名称 |
| value[].siteIcon | string | 网站图标URL |
| value[].datePublished | string | 网页发布时间 |
| value[].dateLastCrawled | string | 网页收录/抓取时间 |
images(图片搜索结果)
| 字段 | 类型 | 说明 |
|---|---|---|
| value | array | 图片搜索结果数组 |
| value[].name | string | 图片名称 |
| value[].thumbnailUrl | string | 缩略图URL |
| value[].contentUrl | string | 原图URL |
| value[].hostPageUrl | string | 图片所在网页URL |
| value[].width | integer | 图片宽度(像素) |
| value[].height | integer | 图片高度(像素) |
videos(视频搜索结果)
| 字段 | 类型 | 说明 |
|---|---|---|
| value | array | 视频搜索结果数组 |
| value[].name | string | 视频标题 |
| value[].description | string | 视频描述 |
| value[].thumbnailUrl | string | 视频缩略图URL |
| value[].contentUrl | string | 视频内容URL |
| value[].duration | string | 视频时长(ISO 8601格式) |
| value[].viewCount | integer | 观看次数 |
示例代码
python
import requests
import json
API_URL = "https://api.moark.com/v1/web-search"
API_TOKEN = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" # 请替换为您的令牌
headers = {
"Authorization": f"Bearer {API_TOKEN}",
"Content-Type": "application/json"
}
def web_search(query, count=10, summary=True, freshness="noLimit"):
"""
执行互联网搜索
Args:
query: 搜索关键字或语句
count: 返回结果数量(1-50)
summary: 是否包含摘要
freshness: 时间范围(noLimit/oneDay/oneWeek/oneMonth/oneYear)
Returns:
搜索结果字典,包含网页、图片、视频等多种类型
"""
payload = {
"query": query,
"count": count,
"summary": summary,
"freshness": freshness
}
try:
response = requests.post(API_URL, headers=headers, json=payload, timeout=30)
response.raise_for_status()
result = response.json()
return result
except requests.exceptions.RequestException as e:
print(f"请求失败: {e}")
return None
except json.JSONDecodeError as e:
print(f"解析响应失败: {e}")
return None
def display_search_results(search_result):
"""显示搜索结果"""
if not search_result or search_result.get("code") != 200:
print("搜索请求未成功。")
return
data = search_result.get("data", {})
# 显示网页搜索结果
web_pages = data.get("webPages", {})
if web_pages and "value" in web_pages:
print(f"\n=== 网页搜索结果(共约 {web_pages.get('totalEstimatedMatches', 0)} 条)===\n")
for idx, page in enumerate(web_pages["value"], 1):
print(f"{idx}. {page.get('name', '无标题')}")
print(f" URL: {page.get('url', 'N/A')}")
print(f" 网站: {page.get('siteName', 'N/A')}")
if page.get('summary'):
print(f" 摘要: {page.get('summary')}")
else:
print(f" 描述: {page.get('snippet', 'N/A')}")
if page.get('datePublished'):
print(f" 发布时间: {page.get('datePublished')}")
print()
# 显示图片搜索结果
images = data.get("images", {})
if images and "value" in images:
print(f"\n=== 图片搜索结果(共 {len(images['value'])} 张)===\n")
for idx, img in enumerate(images["value"][:5], 1): # 只显示前5张
print(f"{idx}. {img.get('name', '无标题')}")
print(f" 缩略图: {img.get('thumbnailUrl', 'N/A')}")
print(f" 原图: {img.get('contentUrl', 'N/A')}")
print(f" 尺寸: {img.get('width')}x{img.get('height')}")
print()
# 显示视频搜索结果
videos = data.get("videos", {})
if videos and "value" in videos:
print(f"\n=== 视频搜索结果(共 {len(videos['value'])} 个)===\n")
for idx, video in enumerate(videos["value"][:5], 1): # 只显示前5个
print(f"{idx}. {video.get('name', '无标题')}")
print(f" 描述: {video.get('description', 'N/A')}")
print(f" URL: {video.get('contentUrl', 'N/A')}")
if video.get('duration'):
print(f" 时长: {video.get('duration')}")
if video.get('viewCount'):
print(f" 观看次数: {video.get('viewCount')}")
print()
if __name__ == "__main__":
# 示例1:基本搜索
print("示例1:基本搜索")
result = web_search("人工智能最新进展", count=5, summary=True)
display_search_results(result)
# 示例2:时间范围搜索
print("\n" + "="*50)
print("示例2:搜索最近一周的内容")
result = web_search("ChatGPT", count=10, freshness="oneWeek", summary=True)
display_search_results(result)
# 示例3:不包含摘要的快速搜索
print("\n" + "="*50)
print("示例3:快速搜索(不含摘要)")
result = web_search("Python教程", count=3, summary=False)
display_search_results(result)
核心参数说明:
-H "Authorization: Bearer ...":用于身份验证,请将您的访问令牌替换为从模力方舟控制台获取的真实令牌。"query":搜索关键字或完整的搜索语句,支持中英文及复杂查询。"count":指定返回的搜索结果数量,范围为1-50,建议根据实际需求设置合理的值以平衡性能和成本。"summary":设置为true时,搜索结果中会包含AI生成的文本摘要,帮助快速了解内容要点。"freshness":时间范围筛选,例如"oneWeek"只返回最近一周的搜索结果。
更多示例代码您可参考 模力方舟示例代码仓库 。
定价
互联网搜索接口按调用次数计费:
| 接口 | 完整路径 | 价格 (人民币/次) |
|---|---|---|
| 互联网搜索 | https://api.moark.com/v1/web-search | ¥0.04 |
说明:每次调用计为一次,无论返回结果数量多少。建议合理设置 count 参数以优化成本。
使用场景
智能问答与对话系统
为AI助手、聊天机器人提供实时互联网信息检索能力,让AI能够回答最新的问题和事件。
内容聚合平台
自动收集和整理特定主题的最新网页、图片、视频内容,构建综合性内容平台。
市场与竞品分析
快速获取行业动态、竞争对手信息、市场趋势等商业情报。
新闻监控与舆情分析
实时追踪特定关键词的新闻报道、社交媒体讨论,进行舆情监测。
知识库构建
从互联网上搜索和提取高质量内容,构建企业或个人知识库。
多媒体内容检索
同时搜索网页、图片、视频等多种类型的内容,满足多样化的信息需求。
注意事项
重要提示
- 搜索接口会实时访问互联网,响应时间可能因网络状况和搜索复杂度而异
- 建议设置合理的
count参数以平衡性能和成本,通常10-20条结果即可满足大多数需求 - 启用
summary参数会增加响应时间,但能获得更有价值的内容摘要 - 搜索结果的准确性和时效性取决于互联网上的可用信息和索引更新频率
- 使用
freshness参数筛选时间范围时,可能会减少返回的结果数量