AI搜索接口怎么接?从 curl 到 Python、Node.js 一次讲清
AI搜索 API接口调用教程|附完整命令
随着大模型技术的发展,“AI搜索”正在成为越来越多产品的基础能力。传统搜索更偏向关键词匹配,而AI搜索通常会结合语义理解、向量检索、网页检索、知识库召回、结果重排以及大模型总结等能力,最终给用户返回更准确、更自然、更可读的答案。
对于开发者来说,直接调用AI搜索API,可以快速把“智能问答”“资料检索”“联网搜索”“知识库助手”“企业文档查询”等能力集成到网站、App、后台系统或自动化工作流中。本文将从接口准备、请求参数、命令行调用、Python调用、Node.js调用、错误处理、流式返回、安全建议等方面,完整讲解AI搜索API的调用方式,并附上可直接复制使用的命令示例。
说明:本文使用通用AI搜索API调用方式进行讲解,示例接口地址、参数名称可根据你实际使用的平台进行调整。假设API地址为:
https://api.example.com/v1/ai/search
一、什么是AI搜索API?
AI搜索API可以理解为一个通过HTTP协议调用的智能搜索服务。开发者向接口提交问题、关键词或查询语句,接口会返回结构化搜索结果,可能包括:
- AI总结答案;
- 搜索到的网页或文档来源;
- 相关引用链接;
- 置信度评分;
- 分段摘要;
- 推荐追问;
- 知识库命中的片段;
- 流式生成内容。
例如,用户输入:
2025年企业如何选择AI知识库系统?
AI搜索API可能会返回一段总结性回答,并附带若干参考来源。相比普通搜索引擎只返回链接列表,AI搜索API更适合直接嵌入到业务系统中,为用户提供“答案型搜索体验”。
二、调用前准备
在正式调用AI搜索API之前,你通常需要准备以下内容。
1. 获取API Key
大多数AI搜索服务都会通过API Key进行鉴权。你需要在服务商控制台中创建密钥,例如:
API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxx
建议不要把API Key直接写死在代码中,而是放到环境变量、配置中心或密钥管理服务中。
2. 确认接口地址
假设本文使用的接口地址为:
https://api.example.com/v1/ai/search
如果你使用的是私有化部署服务,地址可能类似:
https://your-domain.com/api/v1/search
或者内网地址:
http://10.0.0.15:8080/v1/ai/search
3. 确认请求方式
一般AI搜索API使用 POST 请求,因为查询内容、搜索选项、过滤条件、上下文参数等可能比较复杂,使用JSON请求体更灵活。
请求头通常包括:
Content-Type: application/json
Authorization: Bearer YOUR_API_KEY
三、基础请求参数说明
一个典型的AI搜索请求JSON如下:
{
"query": "AI搜索API如何调用?",
"mode": "web",
"limit": 5,
"language": "zh-CN",
"stream": false
}
常见参数说明如下:
| 参数名 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
query |
string | 是 | 用户输入的问题或搜索关键词 |
mode |
string | 否 | 搜索模式,如 web、knowledge_base、hybrid |
limit |
number | 否 | 返回搜索结果数量 |
language |
string | 否 | 返回语言,如 zh-CN、en-US |
stream |
boolean | 否 | 是否启用流式输出 |
filters |
object | 否 | 过滤条件,如时间、站点、文档类型 |
rerank |
boolean | 否 | 是否启用结果重排 |
include_sources |
boolean | 否 | 是否返回引用来源 |
temperature |
number | 否 | 控制生成回答的随机性 |
四、使用curl调用AI搜索API
curl 是最常用的接口测试工具,非常适合快速验证API是否可用。
1. 最简单的调用命令
curl -X POST "https://api.example.com/v1/ai/search" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-xxxxxxxxxxxxxxxxxxxxxxxx" \
-d '{
"query": "AI搜索API如何调用?",
"mode": "web",
"limit": 5,
"language": "zh-CN",
"stream": false
}'
如果接口正常,你可能会得到类似响应:
{
"id": "search_202501010001",
"answer": "调用AI搜索API通常需要准备API Key、接口地址,并通过POST请求提交query参数...",
"sources": [
{
"title": "AI Search API Documentation",
"url": "https://docs.example.com/ai-search",
"snippet": "AI搜索API支持语义检索、联网搜索和结果总结..."
}
],
"usage": {
"search_count": 5,
"tokens": 1260
}
}
2. 使用环境变量保存API Key
为了避免密钥出现在命令历史中,可以使用环境变量。
Linux / macOS:
export AI_SEARCH_API_KEY="sk-xxxxxxxxxxxxxxxxxxxxxxxx"
Windows PowerShell:
$env:AI_SEARCH_API_KEY="sk-xxxxxxxxxxxxxxxxxxxxxxxx"
然后调用:
curl -X POST "https://api.example.com/v1/ai/search" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $AI_SEARCH_API_KEY" \
-d '{
"query": "企业知识库系统有哪些选型指标?",
"mode": "hybrid",
"limit": 8,
"language": "zh-CN",
"include_sources": true
}'
3. 带过滤条件的搜索命令
有些场景下,你可能只想搜索最近一个月的内容,或者只搜索指定站点。可以使用 filters 参数。
curl -X POST "https://api.example.com/v1/ai/search" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $AI_SEARCH_API_KEY" \
-d '{
"query": "最新AI搜索技术趋势",
"mode": "web",
"limit": 10,
"language": "zh-CN",
"include_sources": true,
"filters": {
"time_range": "30d",
"site": ["example.com", "docs.example.com"],
"file_type": ["html", "pdf"]
}
}'
4. 保存返回结果到文件
如果你需要把结果保存下来用于调试或日志分析,可以使用:
curl -X POST "https://api.example.com/v1/ai/search" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $AI_SEARCH_API_KEY" \
-d '{
"query": "RAG和AI搜索有什么区别?",
"mode": "hybrid",
"limit": 5,
"language": "zh-CN"
}' \
-o result.json
查看结果:
cat result.json
如果系统安装了 jq,可以格式化输出:
cat result.json | jq
五、使用Python调用AI搜索API
Python适合用于后端服务、数据处理、自动化任务和AI应用开发。下面使用 requests 库进行调用。
1. 安装依赖
pip install requests
如果你使用的是Python 3环境,也可以执行:
python3 -m pip install requests
2. Python完整示例
新建文件:
touch ai_search_demo.py
写入以下代码:
import os
import requests
import json
API_URL = "https://api.example.com/v1/ai/search"
API_KEY = os.getenv("AI_SEARCH_API_KEY")
if not API_KEY:
raise ValueError("请先设置环境变量 AI_SEARCH_API_KEY")
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {API_KEY}"
}
payload = {
"query": "AI搜索API如何在Python中调用?",
"mode": "hybrid",
"limit": 5,
"language": "zh-CN",
"include_sources": True,
"stream": False
}
try:
response = requests.post(
API_URL,
headers=headers,
json=payload,
timeout=30
)
response.raise_for_status()
data = response.json()
print("AI回答:")
print(data.get("answer", ""))
print("\n引用来源:")
for index, source in enumerate(data.get("sources", []), start=1):
print(f"{index}. {source.get('title')}")
print(f" {source.get('url')}")
print(f" {source.get('snippet')}\n")
except requests.exceptions.HTTPError as e:
print("HTTP错误:", e)
print("响应内容:", response.text)
except requests.exceptions.Timeout:
print("请求超时,请稍后重试")
except requests.exceptions.RequestException as e:
print("请求异常:", e)
except json.JSONDecodeError:
print("响应不是合法JSON:", response.text)
运行:
export AI_SEARCH_API_KEY="sk-xxxxxxxxxxxxxxxxxxxxxxxx"
python ai_search_demo.py
或者:
python3 ai_search_demo.py
六、使用Node.js调用AI搜索API
Node.js适合用于前端服务层、API网关、Serverless函数、企业后台系统等场景。
1. 初始化项目
mkdir ai-search-node-demo
cd ai-search-node-demo
npm init -y
2. 安装依赖
Node.js 18以上已经内置 fetch,可以不安装额外依赖。如果你使用较低版本,可以安装 node-fetch。
npm install node-fetch
下面示例基于Node.js 18+。
3. Node.js完整示例
新建文件:
touch index.js
写入代码:
const API_URL = "https://api.example.com/v1/ai/search";
const API_KEY = process.env.AI_SEARCH_API_KEY;
if (!API_KEY) {
throw new Error("请先设置环境变量 AI_SEARCH_API_KEY");
}
async function main() {
const payload = {
query: "如何在Node.js中调用AI搜索API?",
mode: "hybrid",
limit: 5,
language: "zh-CN",
include_sources: true,
stream: false
};
try {
const response = await fetch(API_URL, {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": `Bearer ${API_KEY}`
},
body: JSON.stringify(payload)
});
const text = await response.text();
if (!response.ok) {
console.error("请求失败:", response.status, response.statusText);
console.error("响应内容:", text);
return;
}
const data = JSON.parse(text);
console.log("AI回答:");
console.log(data.answer);
if (Array.isArray(data.sources)) {
console.log("\n引用来源:");
data.sources.forEach((source, index) => {
console.log(`${index + 1}. ${source.title}`);
console.log(` ${source.url}`);
console.log(` ${source.snippet || ""}`);
});
}
} catch (error) {
console.error("调用异常:", error);
}
}
main();
运行命令:
export AI_SEARCH_API_KEY="sk-xxxxxxxxxxxxxxxxxxxxxxxx"
node index.js
Windows PowerShell:
$env:AI_SEARCH_API_KEY="sk-xxxxxxxxxxxxxxxxxxxxxxxx"
node index.js
七、流式返回调用示例
在AI搜索场景中,如果答案较长,等待完整生成可能会影响用户体验。此时可以启用流式返回,让前端像聊天机器人一样逐字或逐段显示内容。
请求参数中设置:
{
"stream": true
}
1. curl流式调用
curl -N -X POST "https://api.example.com/v1/ai/search" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $AI_SEARCH_API_KEY" \
-d '{
"query": "请详细介绍AI搜索的技术架构",
"mode": "hybrid",
"limit": 5,
"language": "zh-CN",
"stream": true
}'
其中 -N 表示禁用缓冲,方便实时看到服务端推送的数据。
常见流式响应格式可能类似:
data: {"delta":"AI搜索通常由"}
data: {"delta":"查询理解、检索召回、"}
data: {"delta":"结果重排和答案生成组成。"}
data: [DONE]
2. Python处理流式返回
import os
import requests
API_URL = "https://api.example.com/v1/ai/search"
API_KEY = os.getenv("AI_SEARCH_API_KEY")
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {API_KEY}"
}
payload = {
"query": "AI搜索系统的核心模块有哪些?",
"mode": "hybrid",
"limit": 5,
"language": "zh-CN",
"stream": True
}
with requests.post(API_URL, headers=headers, json=payload, stream=True) as response:
response.raise_for_status()
for line in response.iter_lines(decode_unicode=True):
if not line:
continue
if line.startswith("data: "):
content = line.replace("data: ", "", 1)
if content == "[DONE]":
print("\n生成结束")
break
print(content, end="", flush=True)
八、常见错误码与排查方法
调用API时,最常见的问题不是代码本身,而是鉴权、参数、网络和额度限制。下面列出常见错误。
| HTTP状态码 | 常见原因 | 解决方法 |
|---|---|---|
400 |
参数格式错误、缺少必填字段 | 检查JSON格式,确认 query 是否存在 |
401 |
API Key无效或未传入 | 检查 Authorization 请求头 |
403 |
没有接口权限 | 确认账号是否开通AI搜索服务 |
404 |
接口地址错误 | 检查URL路径是否正确 |
429 |
请求频率过高 | 增加重试间隔,申请更高限额 |
500 |
服务端异常 | 稍后重试,或联系服务商 |
504 |
网关超时 | 缩小搜索范围,增加客户端超时时间 |
九、生产环境调用建议
如果你只是本地测试,直接使用curl或简单脚本即可。但如果要把AI搜索API接入正式业务系统,建议注意以下几点。
1. 不要在前端暴露API Key
错误示例:
const API_KEY = "sk-xxxxxxxxxxxxxxxxxxxxxxxx";
如果这段代码被打包到浏览器端,任何用户都可以查看并盗用你的密钥。正确方式是:
- 前端请求你自己的后端接口;
- 后端再调用AI搜索API;
- API Key只保存在服务端环境变量中。
2. 设置合理超时时间
AI搜索可能涉及联网搜索、文档召回和大模型生成,耗时可能比普通接口更长。建议设置超时时间,例如:
requests.post(API_URL, headers=headers, json=payload, timeout=30)
对于用户交互场景,可以使用流式输出降低等待感。
3. 做好重试与限流
遇到 429、500、502、503、504 等错误时,可以使用指数退避重试策略。
例如:
第1次失败:等待1秒
第2次失败:等待2秒
第3次失败:等待4秒
但不要无限重试,否则可能放大故障。
4. 缓存高频问题
如果大量用户反复查询相同问题,例如:
产品价格是多少?
如何申请发票?
怎么联系客服?
可以把结果缓存到Redis或数据库中,减少API调用成本,提高响应速度。
5. 保留来源引用
AI搜索的一个重要优势是可以返回来源。建议在产品界面展示引用链接,让用户知道答案来自哪里。这样可以提升可信度,也方便用户进一步阅读。
十、一个更完整的请求示例
下面是一个更接近生产环境的请求体,包含搜索模式、过滤条件、来源引用、重排和生成参数。
{
"query": "企业搭建AI知识库需要注意哪些安全问题?",
"mode": "hybrid",
"limit": 8,
"language": "zh-CN",
"include_sources": true,
"rerank": true,
"stream": false,
"temperature": 0.3,
"filters": {
"time_range": "365d",
"file_type": ["html", "pdf", "docx"],
"site": ["docs.example.com", "security.example.com"]
}
}
对应curl命令:
curl -X POST "https://api.example.com/v1/ai/search" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $AI_SEARCH_API_KEY" \
-d '{
"query": "企业搭建AI知识库需要注意哪些安全问题?",
"mode": "hybrid",
"limit": 8,
"language": "zh-CN",
"include_sources": true,
"rerank": true,
"stream": false,
"temperature": 0.3,
"filters": {
"time_range": "365d",
"file_type": ["html", "pdf", "docx"],
"site": ["docs.example.com", "security.example.com"]
}
}'
十一、如何设计自己的后端代理接口?
在实际项目中,推荐由你自己的后端暴露一个接口给前端,例如:
POST /api/search
前端只提交:
{
"query": "如何使用AI搜索API?"
}
后端补充鉴权信息、默认参数、用户权限、日志追踪后,再请求AI搜索API。这样可以实现:
- 隐藏真实API Key;
- 控制用户访问频率;
- 记录搜索日志;
- 添加敏感词过滤;
- 根据用户身份限制搜索范围;
- 对返回结果进行二次加工。
一个简单的Express后端示例:
npm install express
创建 server.js:
const express = require("express");
const app = express();
app.use(express.json());
const API_URL = "https://api.example.com/v1/ai/search";
const API_KEY = process.env.AI_SEARCH_API_KEY;
app.post("/api/search", async (req, res) => {
const { query } = req.body;
if (!query || typeof query !== "string") {
return res.status(400).json({
error: "query不能为空"
});
}
try {
const response = await fetch(API_URL, {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": `Bearer ${API_KEY}`
},
body: JSON.stringify({
query,
mode: "hybrid",
limit: 5,
language: "zh-CN",
include_sources: true
})
});
const data = await response.json();
if (!response.ok) {
return res.status(response.status).json(data);
}
res.json(data);
} catch (error) {
res.status(500).json({
error: "AI搜索服务调用失败",
detail: error.message
});
}
});
app.listen(3000, () => {
console.log("Server running at http://localhost:3000");
});
运行:
export AI_SEARCH_API_KEY="sk-xxxxxxxxxxxxxxxxxxxxxxxx"
node server.js
测试自己的后端接口:
curl -X POST "http://localhost:3000/api/search" \
-H "Content-Type: application/json" \
-d '{
"query": "AI搜索API适合哪些业务场景?"
}'
十二、AI搜索API适合哪些场景?
AI搜索API不仅适合做通用搜索,也非常适合接入垂直业务系统。常见场景包括:
-
企业知识库问答
将制度文档、产品手册、技术文档接入搜索系统,员工可以直接提问获取答案。 -
客服机器人
用户询问售后、物流、退款、发票等问题时,系统自动检索知识库并生成回复。 -
站内智能搜索
替代传统关键词搜索,为官网、文档站、帮助中心提供语义搜索能力。 -
研究报告生成
结合联网搜索和摘要生成,快速整理行业动态、竞品信息和市场趋势。 -
代码与技术文档查询
开发者可以基于API文档、SDK说明、内部规范进行智能检索。 -
电商导购搜索
用户可以用自然语言描述需求,例如“适合露营的轻便咖啡壶”,系统返回匹配商品。
十三、总结
调用AI搜索API的核心流程并不复杂,通常只需要完成以下几步:
- 获取API Key;
- 确认接口地址;
- 使用POST请求提交
query; - 根据需要设置搜索模式、返回数量、语言、过滤条件;
- 解析返回的
answer和sources; - 在生产环境中做好鉴权、限流、缓存和错误处理。
如果你只是快速验证接口,推荐使用 curl;如果要做后端集成,可以选择Python或Node.js;如果要优化用户体验,可以启用流式返回。真正落地到业务系统时,重点不只是“能不能调通接口”,还包括搜索质量、响应速度、成本控制、数据安全和结果可信度。
通过本文中的完整命令和代码示例,你可以快速完成AI搜索API的本地测试、后端集成和生产环境接入,为自己的应用增加智能搜索能力。