上一篇 下一篇 分享链接 返回 返回顶部

AI搜索接口怎么接?从 curl 到 Python、Node.js 一次讲清

发布人:慈云数据-客服中心 发布时间:23小时前 阅读量:8

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 搜索模式,如 webknowledge_basehybrid
limit number 返回搜索结果数量
language string 返回语言,如 zh-CNen-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. 做好重试与限流

遇到 429500502503504 等错误时,可以使用指数退避重试策略。

例如:

第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不仅适合做通用搜索,也非常适合接入垂直业务系统。常见场景包括:

  1. 企业知识库问答
    将制度文档、产品手册、技术文档接入搜索系统,员工可以直接提问获取答案。

  2. 客服机器人
    用户询问售后、物流、退款、发票等问题时,系统自动检索知识库并生成回复。

  3. 站内智能搜索
    替代传统关键词搜索,为官网、文档站、帮助中心提供语义搜索能力。

  4. 研究报告生成
    结合联网搜索和摘要生成,快速整理行业动态、竞品信息和市场趋势。

  5. 代码与技术文档查询
    开发者可以基于API文档、SDK说明、内部规范进行智能检索。

  6. 电商导购搜索
    用户可以用自然语言描述需求,例如“适合露营的轻便咖啡壶”,系统返回匹配商品。


十三、总结

调用AI搜索API的核心流程并不复杂,通常只需要完成以下几步:

  1. 获取API Key;
  2. 确认接口地址;
  3. 使用POST请求提交 query
  4. 根据需要设置搜索模式、返回数量、语言、过滤条件;
  5. 解析返回的 answersources
  6. 在生产环境中做好鉴权、限流、缓存和错误处理。

如果你只是快速验证接口,推荐使用 curl;如果要做后端集成,可以选择Python或Node.js;如果要优化用户体验,可以启用流式返回。真正落地到业务系统时,重点不只是“能不能调通接口”,还包括搜索质量、响应速度、成本控制、数据安全和结果可信度。

通过本文中的完整命令和代码示例,你可以快速完成AI搜索API的本地测试、后端集成和生产环境接入,为自己的应用增加智能搜索能力。

目录结构
全文