Kimi聯網搜索API解決什么問題

  1. 多源信息整合:將來自不同來源的數據進行整合,提供統一的搜索接口。
  2. 實時數據獲取:幫助用戶獲取最新的實時信息,提高數據的時效性。
  3. 高效搜索體驗:優化搜索算法,提高搜索速度和準確性,提升用戶體驗。

如何使用Python集成Kimi API聯網功能

Kimi為開發者封裝好了一個簡單方便、開箱即用的“聯網搜索”功能;此功能基于 Kimi 大模型原有的工具調用 tool_calls 用法,提供了一個內置的工具函數 builtin_function.$web_search,集成的時候只需要使用這個內置工具函數就可以很簡單的實現聯網搜索功能。

下面以獲取一個網頁信息的內容為例給大家一步一步演示如何集成Kimi的API聯網功能:

第一步:導入必要的庫

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。API秘鑰為注冊賬號時生成的秘鑰

第三步:定義search_impl函數

def search_impl(arguments: Dict[str, Any]) -> Any:
"""
在使用 Moonshot AI 提供的 search 工具的場合,只需要原封不動返回 arguments 即可,
不需要額外的處理邏輯。
"""
return arguments

這個函數是搜索工具的實現,目前只是簡單地返回傳入的參數。

第四步:定義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。JSON Mode的基本用法是將 response_format 設置為 {"type": "json_object"}來使用,Kimi 大模型會按照要求輸出一個合法的、可被正確解析的 JSON 文檔。關于JSON Mode更多用法可以參考官網文檔有詳細說明,這里不做贅述。

第五步:處理聊天完成請求的響應

使用JSON Mode的目的,一方面是為了節省token,另一方面也是為了從網頁信息中提取更有價值的格式化數據方便后面二次加工處理。

def main():
web_url = "http://www.dlbhg.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分鐘獲取100個網頁信息沒有問題,當然為了提高效率可以加并發。Kimi對API有速率限制,但如果是充值會員的話,一分鐘內發起的請求數RPM能達到200

總結

以上就是小智為大家帶來的分享,如何通過Kimi API實現聯網搜索功能,以及這一功能如何幫助我們高效地獲取和處理實時數據。通過使用Kimi API的內置$web_search工具函數,我們可以輕松地將網頁信息整合到我們的應用程序中,從而提升用戶體驗和數據處理的效率。無論是個人開發者還是企業,都能從中受益。希望這次的分享能幫助大家更好地理解和使用Kimi API的聯網搜索功能。如果覺得我的文章對你有幫助的話,請不要吝嗇你的點贊、在看和轉發。歡迎大家關注我的公眾號小智AI指南。

文章轉自微信公眾號@小智AI指南

上一篇:

Katacata Ai API平臺全面開放,激發行業創新天花板。

下一篇:

最新LangChain+GLM4開發AI應用程序系列(一):快速入門篇
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

數據驅動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內容創意新穎性、情感共鳴力、商業轉化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費