文档
开发指南
网络搜索使用建议

接入互联网搜索,帮助大模型获取更新数据

在使用大模型时,除了利用大模型进行对话之外,开发者还可能希望大模型获取实时信息以提高输出的质量和时效性。阶跃星辰大模型支持通用互联网搜索工具,通过联网搜索获取最新数据,增强信息准确性并扩展知识范围。这样模型可以为用户提供多样性和深度的回答,帮助开发者更好地处理业务需求。

启用互联网搜索

如需启用互联网搜索,可以通过在调用 API 时,传入 tools 定义来使用,具体定义如下:

#构建web_search工具
tools = [
    {
        "type": "web_search",# 固定值
        "function": {
            "description": "这个web_search用来搜索互联网的信息"# 描述什么样的信息需要大模型进行搜索。
        }
    }
]

互联网搜索工具的 type 固定为 web_search,并支持通过 function.description 来描述需要使用搜索的场景,用于指引大模型判断是否需要调用互联网搜索搜索相关信息。在完成搜索后,会以上下文的方式,插入到对话中,并交给大模型进行推理。互联网搜索工具按实际调用的次数计费,具体计费可见定价说明

实现步骤 & 参考代码

实现联网搜索,需要先构建 web_search 工具,这是阶跃星辰大模型为开发者定义好的网络搜索工具。如开发者有搜索渠道也,可以自行通过 tool call 实现调用自定义搜索引擎。

from openai import OpenAI
# 初始化 阶跃星辰 Client
STEPFUN_KEY = "YourAPIkey"
 
client = OpenAI(
    base_url="https://api.stepfun.com/v1",
    api_key=STEPFUN_KEY
)
#定义sys扮演的角色和任务
sys_prompt = "每个提问先通过web search,然后通过web search的结果,回答用户问题"
user_prompt = "上海最高的楼上海什么楼?请只回答楼的名称,不要包含其他内容。例如:上海金茂大厦。"
#构建信息
message = [
    {"role": "system", "content": sys_prompt},
    {"role": "user", "content": user_prompt}
]
#构建web_search工具
tools = [
    {
        "type": "web_search",# 固定值
        "function": {
            "description": "这个web_search用来搜索互联网的信息"# 描述什么样的信息需要大模型进行搜索。
        }
    }
]
# 调用补全接口进行补全
completion = client.chat.completions.create(
    model="step-1-8k",
    messages=message,
    tool_choice="auto",
    tools=tools,
    stream=False#非流式可以不进行设置使用默认值
)
#非流式
print(completion)

返回结果

  • 返回结果中的 tool_calls.function.results 当中包含的是搜索引擎返回的信息,你可以基于此渲染 UI。
{
    "id": "354dff9f4e8b0d273cf9d4639ba5f183.2618f2a05bbfdd02896c32051994da8c",
    "object": "chat.completion",
    "created": 1722413870,
    "model": "step-1-8k",
    "choices": [
        {
            "index": 0,
            "message": {
                "role": "assistant",
                "content": "上海中心大厦",
                "tool_calls": [
                    {
                        "id": "call__Tg9p9DHRK2JamqimG-IVA",
                        "type": "web_search",
                        "function": {
                            "name": "step_websearch",
                            "arguments": "{\"keyword\": \"上海 最高的楼\"}",
                            "results": [
                                {
                                    "index": 0,
                                    "url": "https://www.tianqi.com/video/3352.html",
                                    "title": "上海最高的楼 上海最高的楼是哪",
                                    "summary": "\n上海中心大厦是上海市的一座超高层地标式摩天大楼,其地上有119层,还有5层裙楼和5层地下室。上海中心大厦分为9个区,每一个都有自己的空中大厅和中庭。其中空中大厅每一层都建有自己的零售店和餐馆,形成了一个垂直商业区。\n相关推荐 更多 >>\n-\n### 何超莲看中国女排比赛快窒息 并且引发了网友的共鸣\n##### 热点07-30\n-\n### 覃海洋张雨霏一天7次尿检 游泳运动员受大干扰和压力\n##### 热点07-29\n-\n"
                                },
                                {
                                    "index": 1,
                                    "url": "https://www.maigoo.com/news/481863.html?fromapp=wx",
                                    "title": "上海十大高楼排行榜 上海10大最高的摩天大楼 上海最高建筑盘点→买购网",
                                    "summary": "\n15 | 上海信息港枢纽大楼 | 288.00米 | 已建成 |\n16 | 上海恒基中心 | 285.00米 | 已建成 |\n17 | 上海明天广场 | 284.60米 | 已建成 |\n18 | 上海前滩中心 | 280.00米 | 已建成 |"
                                },
                                {
                                    "index": 2,
                                    "url": "http://m.wenda.bendibao.com/sgh/128141.shtm",
                                    "title": "上海最高的楼有多少层- 本地宝",
                                    "summary": "【导语】: 118层.上海最高建筑物是上海中心大厦.上海中心大厦项目面积433954平方米,总高为632米,结构高度为580米,机动车停车位布置在地下,可停放2000辆. 118层.上海最高建筑物是上海中心大厦.上海中心大厦项目面积433954平方米,总高为632米,结构高度为580米,机动车停车位布置在地下,可停放2000辆. 上海三个高楼通常指上海环球金融中心、上海金茂大厦、上海中心大厦.其中,上海环球金融中心是位于中国上海陆家嘴的一栋摩天大楼,楼高492米,地上101层,是世界最高的平顶式大楼. 上海中心大厦是中国第一高楼(截止2018年1月).上海中心大厦项目面积433954平方米,建筑主体为118层,总高为632米,结构高度为580米,机动车停车位布置在地下,可停放2000辆. 金茂大厦又称金茂大楼,曾经是中国大陆最高的大楼,位于上海市浦东新区黄浦江畔的陆家嘴金融贸易区,楼高420.5米. 温馨提示: 微信关注上海本地宝 公众号(shbendibao)输入框回复 社保 ,查看更多上海最新社保卡更换流程、社保卡余额查询,社保卡办理网点等信息. "
                                },
                                {
                                    "index": 3,
                                    "url": "https://hf.house365.com/info6666/398606.html",
                                    "title": "上海最高楼叫什么大厦有多少米高-365淘房网-上海最高楼",
                                    "summary": "上海最高楼叫上海中心大厦,总高为632米,共有132层,地上127层,地下5层.它不仅是上海最高的楼,也曾是中国最高的楼,现被739米的H700深圳塔取代.上海中心大厦于2008年11月29日开工,直到2016年3月12日全部完工,2016年4月27日开始运营.上海中心的设计来自美国的Gensler建筑设计事务所设计,其设计的'龙型方案中标后,与同济大学建筑设计研究院完成施工图出图,深化大厦细部设计. 上海中心大厦采用了一种'龙型设计能够延缓风流,随着高度的升高,每层扭曲近1度,将风环绕建筑时的侧力减少24%,提升了大厦的安全.此外,上海中心大厦不单单是一座办公楼,每个区都有自己的空中大厅和中庭,形成了一个垂直区.1号区将是零售区,2号区到6号区将为办公区,酒店和观景台座落于7号区到9号区.空中大厅的每一层都将建有自己的零售店和餐馆,成为一个垂直区. 除了上海中心大厦外,上海环球金融中心也是上海的地标建筑之一,它位于中国上海陆家嘴的一栋摩天大楼,2008年8月29日竣工,楼高492米,地上101层.环球金融中心曾一度成为国内外游客来上海的首选之地,位于100层的观光厅更是成为了上海的一个标志. 总的来说,上海中心大厦和上海环球金融中心都是上海的标志建筑,代表着上海的发展和成就.它们不仅仅是一座建筑,更是上海人民勇于进取、开拓创新的精神象征."
                                },
                                {
                                    "index": 4,
                                    "url": "http://m.nongpin88.com/know/1957952.html",
                                    "title": "上海最高的楼是哪个楼_知道问答_醉学网",
                                    "summary": "上海最高的的楼是上海中心大厦 . 上海中心大厦,位于陆家嘴,建筑主体为118层,总高为632米,其设计高度超过附近的上海环球金融中心,被称为中国第一高楼,世界第三高楼. 上海中心大厦项目面积433954平方米,结构高度为580米,机动车停车位布置在地下,可停放2000辆. 美国SOM建筑设计事务所、美国KPF建筑师事务所及上海现代建筑设计集团等多家国内外设计单位提交了设计方案,美国Gensler建筑设计事务所的“龙型”方案及英国福斯特建筑事务所“尖顶型”方案入围.经过评选,“龙型”方案中标,大厦细部深化设计以“龙型”方案作为蓝本,由同济大学建筑设计研究院完成施工图出图."
                                }
                            ]
                        }
                    }
                ]
            },
            "finish_reason": "stop"
        }
    ],
    "usage": {
        "cached_tokens": 64,
        "prompt_tokens": 1516,
        "completion_tokens": 4,
        "total_tokens": 1520
    }
}

常见用法

输出使用到的链接

在展示生成结果时,如果希望展示所使用的 Web 链接,则可以要求大模型在返回时,返回所使用的链接,并通过返回的 tool_calls 的 results 来获取到对应链接的基础信息,并渲染给用户。

注意事项

  • 在使用流式输出时,将会在返回的第一个 chunk 中带上搜索引擎的结果。你可以使用第一个 chunk 来渲染 UI。
  • 在使用大模型推理时,你需要写清楚 System Prompt 和 Tool 的 description,以便大模型能够正确理解你的需求,调用互联网搜索。
  • 目前在实际调用互联网搜索时,会先进行意图判断,评估是否需要调用互联网搜索,并不会对每一次调用都使用互联网搜索。