热门搜索:和平精英 原神 街篮2 

您的位置:首页 > > 教程攻略 > ai资讯 >Kimi API提供联网搜索功能,仅10分钟获取1000个网页信息

Kimi API提供联网搜索功能,仅10分钟获取1000个网页信息

来源:互联网 更新时间:2026-08-27 14:28

月之暗面最近推送了一条消息:MoonshotAI联网功能上线了,Kimi API正式提供联网搜索功能。这条信息提醒让不少开发者第一时间打开了官方文档,开始研究这个新能力。下面就来聊聊,如何通过Kimi API实现联网搜索功能,包括内置web_search的声明和执行流程,以及联网搜索对Tokens消耗的具体影响。

Kimi API提供联网搜索功能,仅10分钟获取1000个网页信息

如何使用Kimi联网搜索API

首先,需要在Kimi联网搜索API的官方网站上注册一个账号,然后获取API密钥。这个密钥用来认证你的每次请求,相当于一把专属钥匙。

接下来,仔细阅读官方API文档。文档地址在platform.moonshot.cn/docs/guide/use-web-search。里面涵盖了API的基础概念、可用端点、请求参数、响应格式、错误代码等信息,入门指南中能直接找到联网搜索相关的Tool配置。

Kimi联网搜索API解决什么问题

这个功能的落地价值体现在三个维度:一是多源信息整合,能把来自不同渠道的数据统一起来,提供一个干净的搜索接口;二是实时数据获取,帮助用户拿到最新动态,数据的时效性一下子拉满;三是高效搜索体验,算法优化之后,搜索速度和准确性都有了明显提升,用户体验自然水涨船高。

如何使用Python集成Kimi API联网功能

Kimi为开发者封装了一个开箱即用的“联网搜索”功能,基于原有的工具调用tool_calls用法,提供了内置的工具函数builtin_function.$web_search。集成的时候,直接调用这个内置工具函数就能实现联网搜索,无需自己手搓复杂的逻辑。

下面以获取一个网页信息的内容为例,一步步演示集成过程。

第一步:导入必要的库

import json
from typing import Dict, Any
from openai import OpenAI
from openai.types.chat.chat_completion import Choice

这一步导入了处理JSON数据、类型注解以及与OpenAI API交互所需的库,为后续的联网调用打下基础。

第二步:设置OpenAI客户端

client = OpenAI(
    api_key="*****",
    base_url="https://api.moonshot.cn/v1"
)

创建一个OpenAI客户端实例,配置好API密钥和基础URL。密钥就是注册账号时生成的那个。

第三步:定义search_impl函数

def search_impl(arguments: Dict[str, Any]) -> Any:
    """
    在使用 Moonshot AI 提供的 search 工具的场合,只需要原封不动返回 arguments 即可,
    不需要额外的处理逻辑。
    """
    return arguments

这个函数是搜索工具的实现。对Moonshot AI提供的search工具来说,直接返回传入的参数即可,简洁高效。

第四步:定义chat函数

def chat(messages) -> Choice:
    completion = client.chat.completions.create(
        model="moonshot-v1-128k",
        messages=messages,
        temperature=0.3,
        response_format={"type": "json_object"},
        tools=[
            {
                "type": "builtin_function",
                "function": {
                    "name": "$web_search",
                },
            }
        ]
    )
    usage = completion.usage
    choice = completion.choices[0]

    if choice.finish_reason == "stop":
        print(f"chat_prompt_tokens:          {usage.prompt_tokens}")
        print(f"chat_completion_tokens:      {usage.completion_tokens}")
        print(f"chat_total_tokens:           {usage.total_tokens}")
    return choice

这个函数负责将消息发送给Kimi大模型并接收回复。它处理聊天完成请求,根据finish_reason打印出消耗的Tokens数量。这里要注意,对大模型返回的数据要处理一下格式,官方文档提供了JSON Mode。把response_format设置为{"type": "json_object"}后,Kimi大模型会输出一个合法的、可正确解析的JSON文档。使用JSON Mode的目的在于节省Token,同时从网页信息中提取更有价值的格式化数据,方便后续二次加工。

第五步:处理聊天完成请求的响应

def main():
    web_url = "https://www.explinks.com/api/scd2024090489792d77afd9"
    system_prompt = """
    请搜索当前链接地址"""+web_url+""",生成一段200字的内容总结,
    输出 JSON 格式如下:
    [{"summary": ""}]
    """
    messages = [
        {"role": "system", "content": "你是 Kimi。"},
    ]

    messages.append({
        "role": "user",
        "content": system_prompt
    })

    finish_reason = None
    while finish_reason is None or finish_reason == "tool_calls":
        choice = chat(messages)
        finish_reason = choice.finish_reason
        if finish_reason == "tool_calls":
            messages.append(choice.message)
            for tool_call in choice.message.tool_calls:
                tool_call_name = tool_call.function.name
                tool_call_arguments = json.loads(tool_call.function.arguments)
                if tool_call_name == "$web_search":
                    tool_result = search_impl(tool_call_arguments)
                else:
                    tool_result = f"Error: unable to find tool by name '{tool_call_name}'"

                messages.append({
                    "role": "tool",
                    "tool_call_id": tool_call.id,
                    "name": tool_call_name,
                    "content": json.dumps(tool_result),
                })

    print(choice.message.content)

这一步定义了main函数,设置系统提示,指示模型搜索指定URL并生成内容总结。初始化消息列表后,进入一个循环,不断发送消息并接收回复,直到没有更多的工具调用需要执行。最后打印出模型生成的回复内容。

第六步:运行脚本

if __name__ == '__main__':
    main()

如果这个脚本作为主程序运行,就调用main函数。最终查看控制台返回的日志信息,可以发现数据完全符合提示词中的JSON格式,同时还显示了所使用的Token数量。

chat_prompt_tokens:          90
chat_completion_tokens:      267
chat_total_tokens:           357
[{
    "summary": "AI手写服务-Handwrytten利用人工智能技术模拟真实手写字体,
    提供个性化的沟通方式。用户可选择字体、笔触风格和布局定制内容,适用于客户关系维护、
    市场推广和个人情感表达。服务通过Restful API实现自动化交互,支持用户认证、订单提交等功能。
    Helium公司作为技术支持,推动物联网发展,为数字化转型提供支持。"
}]

Kimi联网搜索API最佳实践

学会使用联网搜索API只是第一步,真正重要的是把它应用到实际工作场景中去。

案例分析

最近接到一个小需求:公司要做一个服务商导航页,页面上需要展示每个服务商的信息简介。上千个服务商信息,靠人工手动操作,光打开网页就得上千次,更别说一个个浏览、总结、生成简介了。

解决方案

传统做法是通过爬虫获取页面信息,再投喂给大模型生成简介。有了联网搜索API后,这个需求变得异常简单——只需提供网页链接地址,调用联网搜索API就能直接搞定。

实现思路

  • 1、安装必要的Python库:确保处理Excel文件的库(如openpyxl或pandas)和发送HTTP请求的库(如requests)已安装就绪
  • 2、加载Excel文件:用pandas或openpyxl读取包含URL的Excel文件
  • 3、提取URL列:从DataFrame中提取包含URL的列
  • 4、定义搜索函数:创建一个函数,发送HTTP请求到Kimi联网搜索API并获取结果,直接使用已集成好的Kimi联网搜索API即可
  • 5、遍历URL列表:对每个URL调用搜索函数,将结果存储起来
  • 6、更新DataFrame:将搜索结果添加到原始DataFrame中
  • 7、保存更新后的Excel文件:将更新后的DataFrame保存回Excel文件

亲测下来,1分钟获取100个网页信息完全没问题。如果想进一步提高效率,可以加并发请求。Kimi对API有速率限制,不过充值会员的话,一分钟内发起的请求数RPM可以达到200。

总结

以上就是通过Kimi API实现联网搜索功能的完整流程,以及这一功能如何帮助我们高效地获取和处理实时数据。借助Kimi API内置的$web_search工具函数,可以轻松将网页信息整合到应用中,提升用户体验和数据处理效率。无论是个人开发者还是企业团队,都能从中找到实实在在的价值。

关于宇宙的好的网名有哪些
关于宇宙的好的网名有哪些

类型:角色扮演

大小:1

语言:简体中文

平台:互联网

游戏下载

热门手游

手机号码测吉凶
本站所有软件,都由网友上传,如有侵犯你的版权,请发邮件haolingcc@hotmail.com 联系删除。 版权所有 Copyright@2012-2013 haoling.cc