【人工智能深度学习应用】妙搜API最佳实践

news2024/11/28 0:37:31

功能概述

AI妙搜通过集成夸克通用搜索引擎,能够提供一个强大的搜索素材功能,大大提升内容创作者在寻找和使用网络资源时的效率和便捷性。用户只需输入相关的关键词或描述,系统将根据用户的搜索词在互联网上进行搜索,并展示与搜索词相关的素材结果,用户随后便可以把符合预期素材内容添加至素材库中。

说明

在使用“搜索素材”之前需要配置对应的搜索数据源。

功能优势

image

搜索类型

摘编式文本搜索

摘编式文本搜索是指文本搜索结果不经过大模型加工生成,完整摘编原文内容,查找与搜索Query最相符的相关片段,展现出处或原文页数可满足片段查找、原文溯源、出处查找等需求。例如搜索:“杭州亚运会开幕式相关的原文片段、三个代表原文出处、发动机漏油的处理方法”。

image

生成式文本搜索

生成式文本搜索是指原始搜索结果经过大模型加工,进行总结、生成、加工后,生成文本结果,可满足文本搜索问答需求。例如搜索:“总结2023年两会关于民生经济的重要观点”。

image

生成式文本聚合搜索

利用大模型强大的推理、分析、逻辑能力,在生成式文本搜索结果的基础上,支持按照特定条件、特定逻辑进行结果分析、内容聚合和处理,可展示成特定样式,可满足复杂推理、复杂条件聚合的结果搜索需求。例如搜索“分角色总结两会期间部长通道发言内容,每个人三点、分析对比苹果15与小米14的主要差异,用表格呈现”。

image

音视图文多模态搜索

音视频图文多模态搜索是指结果不经过任何,直接呈现与搜索Query最相关的音视图文内容可满足图片搜索、音视频片段搜索需求,例如搜索:“北京四合院相关视频和图片”。

image

生成式音视图文多模态搜索

在音视图文原始搜索结果上,大模型结合进行总结、分析、加工,生成文本答案,结合最相关的音视频图片片段结合文本答案共同给出,可满足音视图文理解问答需求,例如搜索“杭州亚运会闭幕式有哪些精彩瞬间?”

image

生成式音视图文多模态聚合搜索

利用大模型强大的推理、分析、逻辑能力,在生成式音视图文多模态搜索结果的基础上,支持按照特定条件、特定逻辑进行结果分析、内容聚合和处理,展示成特定样式,可满足复杂音视图文聚合、推理、条件式搜索需求,例如搜索“2022年主席出访的时间线盘点”。

image

Copliot模式

Copliot模式支持在搜索过程中,大模型针对不清晰、条件不够的搜索需求进行反问、寻求用户帮助,从而提高端到端搜索效果,同时Copliot模式支持用户干预所有搜索过程,可改变任一搜索过程,影响最终搜索结果,一般用于复杂条件、聚合搜索场景。

  1. 例如先搜索:“杭州亚运会”。

  2. 随即AI会再次询问:“您希望了解杭州亚运会的哪方面内容呢?”。

image

假设我需要了解“比赛项目”,只需在输入框输入内容,然后点击“发送”即可。

image

接下来是妙搜链路 API的最佳示例,帮助您快速入门并开发您自己的业务应用。

一、妙搜功能概述

1.1、一句话说明

妙搜内置“互联网搜索”,可以供通用领域知识、信息智能搜索生成,为了应对更多领域、企业知识的搜索生成,我们提供了“三方搜索API”和“企业知识”的集成能力。通过以下接口可以配置和管理企业API和知识。控制台入口:

image

1.2、产品页面展示

image

1.2.1、数据源管理

控制台入口

对应“数据源管理”菜单:此菜单下为数据接入说明,支持PaasAPI方式维护数据源和数据集下知识。

功能说明

维护数据源,可以是多个,供“智能搜索”模块搜索获取知识。支持的数据源类型目前有三种:

  • 系统内置数据源:系统内置,不支持修改,目前内置“互联网搜索”,支持互联网通用领域的网站数据搜索;

  • 三方搜索API数据源:企业提供搜索API,妙搜提供大模型能力并整合,目前需联系后台技术维护,暂未开放自定义;

  • 企业知识数据源:企业提供知识,妙搜提供搜索和大模型能力,可以通过“数据源管理”下数据集相关API维护索引和索引中知识。

API:数据源管理(仅混合云,公有云待上线)

1.2.2、系统配置->通用/媒资搜索信源

控制台入口

对应“系统配置”菜单下“通用搜索信源”、“媒资搜索信源”两个tab。

功能说明

维护“智能搜索”模块两个tab下索引的启用与否、召回文章、chunk(片段)条数。

API:系统配置-信源管理

1.2.3、智能搜索

控制台入口
  • 妙搜首页下多模态搜索框。

    image

  • 妙笔首页右上角搜索素材

    image

功能说明

深度服务通用领域,影视、媒体、营销、影视、媒体等行业的多模态搜索。

API:智能搜索

chatconfig.SearchSource 字段下配置“数据源(信源)”。

二、PaasAPI整体对接方案

2.1、方案概览

image

2.2、接口明细

  • 数据源管理:维护企业知识;

  • 系统配置-信源管理:配置信源,可以通过控制台配置;

  • 智能搜索:端到端智能搜索生成推理能力。

三、PaasAPI对接示例

3.1、前提条件

  • 阿里云账号已开通本产品;

  • 获得AgentKey、AccessKeyId、AcccessKeySecret:AccessKey、AppID及AgentKey获取方式;

  • 获取WorkSpaceId 获取Workspace ID;

  • 引入妙笔SDK 注意获取最新sdk版本;

<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aimiaobi20230801</artifactId>
    <version>${latest}</version>
</dependency>
  • 引入三方依赖:本文SSE示例采用okhttp开源三方组件,如果使用示例代码需要引入如下pom。

<dependency>
    <groupId>com.squareup.okhttp3</groupId>
    <artifactId>okhttp</artifactId>
    <version>4.9.1</version>
</dependency>

<dependency>
    <groupId>com.squareup.okhttp3</groupId>
    <artifactId>okhttp-sse</artifactId>
    <version>4.9.1</version>
</dependency>

3.2、管控API(HTTP)-CreateToken

准备:

  • 阿里云账号已开通产品;

  • 获取AccessKey:对应示例中 ALIBABA_CLOUD_ACCESS_KEY_ID;

  • 获取AccessKeySecret:对应示例中 ALIBABA_CLOUD_ACCESS_KEY_SECRET;

  • 获取AgentKey:对应示例中 AgentKey;

接口文档

  • CreateToken - 获取授权token。

接口说明

  • 获取推理API依赖的访问鉴权token;

  • 获取到授权token 注意:token有效期,时效为三分钟。

在线调试&示例

调用示例

  • Java-SDK:

import com.aliyun.aimiaobi20230801.models.CreateTokenRequest;
import com.aliyun.aimiaobi20230801.Client;
import com.aliyun.teaopenapi.models.Config;

public class Sample {

    /**
     * <b>description</b> :
     * <p>使用AK&amp;SK初始化账号Client</p>
     * @return Client
     *
     * @throws Exception
     */
    public static Client createClient() throws Exception {
        // 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考。
        // 建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/378657.html。
        Config config = new Config()
                // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID。
                .setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
                // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_SECRET。      
                .setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
        // Endpoint 请参考 https://api.aliyun.com/product/AiMiaoBi
        config.endpoint = "aimiaobi.cn-beijing.aliyuncs.com";
        return new Client(config);
    }

    public static void main(String[] args) throws Exception {
        Client client = createClient();
        CreateTokenRequest createTokenRequest = new CreateTokenRequest();
        createTokenRequest.setAgentKey("AgentKey");
        try {
            // 复制代码运行请自行打印 API 的返回值
            client.createToken(createTokenRequest);
        } catch (Exception e) {
            // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。
            e.printStackTrace();
        }
    }
}

3.3、推理API(HTTP-SSE)-chatGenerate

准备

  • 阿里云账号已开通产品;

  • 获取AccessKey:对应示例中 ALIBABA_CLOUD_ACCESS_KEY_ID;

  • 获取AccessKeySecret:对应示例中 ALIBABA_CLOUD_ACCESS_KEY_SECRET;

  • 获取AgentKey:对应示例中 AgentKey;

  • 通过CreateToken获取鉴权token:放入请求header中:Authorization: Bearer {token} 。

接口文档

  • 智能搜索

接口地址

  • https://aimiaobi.aliyuncs.com/api/llm/gc/chatGenerate。

接口说明

  • 妙搜-智能搜索接口。

调用示例

  • Java-SDK:

import com.aliyun.aimiaobi20230801.Client;
import com.aliyun.aimiaobi20230801.models.CreateTokenResponse;
import com.aliyun.teaopenapi.models.Config;
import okhttp3.*;
import okhttp3.internal.sse.RealEventSource;
import okhttp3.sse.EventSource;
import okhttp3.sse.EventSourceListener;

import java.util.concurrent.TimeUnit;

public class Sample {

    /**
     * <b>description</b> :
     * <p>使用AK&amp;SK初始化账号Client</p>
     * @return Client
     *
     * @throws Exception
     */
    public static Client createClient() throws Exception {
        // 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考。
        // 建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/378657.html。
        Config config = new Config()
                // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID。
                .setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
                // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_SECRET。      
                .setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
        // Endpoint 请参考 https://api.aliyun.com/product/AiMiaoBi
        config.endpoint = "aimiaobi.cn-beijing.aliyuncs.com";
        return new Client(config);
    }

    /**
     * 获取鉴权token
     * @return
     */
    private static String createToken() throws Exception {
        com.aliyun.aimiaobi20230801.Client client = createClient();
        com.aliyun.aimiaobi20230801.models.CreateTokenRequest createTokenRequest = new com.aliyun.aimiaobi20230801.models.CreateTokenRequest();
        createTokenRequest.setAgentKey("AgentKey");
        com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
        // 复制代码运行请自行打印 API 的返回值
        CreateTokenResponse createTokenResponse = client.createTokenWithOptions(createTokenRequest, runtime);
        return createTokenResponse.getBody().getData().getToken();
    }

    
    public static void chatGenerate(String token) throws Exception {
        String url = "https://aimiaobi.aliyuncs.com/api/llm/gc/chatGenerate";
        
        //构建请求参数
        String requestBodyJson = "{\n" +
                "    \"prompt\": \"杭州亚运会吉祥物\",\n" +
                "    \"chatConfig\": {\n" +
                "        \"generateTechnology\": \"copilotReference\",\n" +
                "        \"searchModels\": [\n" +
                "            \"TextGenerate\"\n" +
                "        ]\n" +
                "    }\n" +
                "}";
        RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), requestBodyJson);

        //构建SSE请求
        Request request = new Request.Builder()
                .url(url)
                .header("Authorization", "Bearer " + token)
                .post(requestBody)
                .build();

        // 定义OkHttpClient
        OkHttpClient okHttpClient = new OkHttpClient.Builder()
                .connectTimeout(1, TimeUnit.MINUTES)
                .readTimeout(1, TimeUnit.MINUTES)
                .build();

        // 实例化EventSource,注册EventSource监听器
        RealEventSource realEventSource = new RealEventSource(request, new EventSourceListener() {
            private long callStartNanos;

            private void printEvent(String name) {
                long nowNanos = System.nanoTime();
                if (name.equals("callStart")) {
                    callStartNanos = nowNanos;
                }
                long elapsedNanos = nowNanos - callStartNanos;
                System.out.printf("=====> %.3f %s%n", elapsedNanos / 1000000000d, name);
            }

            @Override
            public void onOpen(EventSource eventSource, Response response) {
                printEvent("onOpen");
            }

            @Override
            public void onEvent(EventSource eventSource, String id, String type, String data) {
                printEvent("onEvent");
                //响应到的报文:todo 这里做业务逻辑处理
                System.out.println(data);
            }

            @Override
            public void onClosed(EventSource eventSource) {
                printEvent("onClosed");
            }

            @Override
            public void onFailure(EventSource eventSource, Throwable t, Response response) {
                //这边可以监听并重新打开
                printEvent("onFailure");
            }
        });
        //真正开始请求的一步
        realEventSource.connect(okHttpClient);
    }

    public static void main(String[] args) {
        try {
            chatGenerate(createToken());
        } catch (Exception e) {
            //处理异常
            e.printStackTrace();
        }
    }
}
  • CURL:

curl 'https://aimiaobi.aliyuncs.com/api/llm/gc/chatGenerate' \
-X 'POST' \
-H 'Content-Type: application/json' \
-H 'Accept: text/event-stream' \
-H 'Authorization: Bearer {token}' \
--data '{
    "prompt": "杭州亚运会吉祥物",
    "chatConfig": {
        "generateTechnology": "copilotReference",
        "searchModels": [
            "TextGenerate"
        ],
        "searchParam": {
            "searchSources": [
                {
                    "code": "SystemSearch",
                    "datasetName": "QuarkCommonNews"
                }
            ]
        }
    }
}'
  • 请求参数json样例:

{
    "prompt": "杭州亚运会吉祥物",
    "chatConfig": {
        "generateTechnology": "copilotReference",
        "searchModels": [
            "TextGenerate"
        ],
        "searchParam": {
            "searchSources": [
                {
                    "code": "SystemSearch",
                    "datasetName": "QuarkCommonNews"
                }
            ]
        }
    }
}
  • 关键参数说明:

    • chatConfig.generateTechnology:搜索模式:copilotReference:通用搜索;copilotPrecise:媒资搜索;

    • chatConfig.searchModels:搜索类型(Agent),比如:TextGenerate 总结生成答案;

    • chatConfig.searchParam.searchSources:搜索信源。

响应示例

id:32c02e8e-3498-4765-878e-2125fd5e7caa
event:task-finished
data:{
    "payload": {
        "output": {
            "agentContext": {
                "bizContext": {
                    "prompt": "杭州亚运会吉祥物",
                    "currentStep": "search",
                    "nextStep": "generate",
                    "searchKeywords": [
                        "杭州",
                        "亚运会",
                        "吉祥物"
                    ],
                    "supplementEnable": false,
                    "supplementDataType": "searchQuery",
                    "searchQueryList": [
                        "杭州亚运会吉祥物"
                    ],
                    "multimodalMediaSelection": {},
                    "generatedContent": {
                        "textSearchResult": {
                            "total": 10,
                            "searchQuery": "杭州亚运会吉祥物",
                            "searchResult": [
                                {
                                    "docUuid": "53558a72452efbe881f41e81bd6138fe",
                                    "chunks": [
                                        "AI知识君全网内容智能分析杭州第19届亚运会的吉祥物是三个造型活泼可爱且又充满时代活力的机器人形象,分别是琮、莲莲和宸宸。\n1. \n琮琮:代表位于浙江省杭州市余杭区瓶窑镇内的良渚古城遗址。它的名字来源于良渚古城遗址出土的代表性文物玉琮,具有坚强刚毅、敦厚善良、体魄强健和热情奔放四大美好寓意。\n2. \n莲莲:代表杭州的城市名片西湖,结合吉祥物莲莲身上的主色调,人们自然会想到西湖上的接天莲叶。这一吉祥物形象除了寓意纯洁善良、活泼可爱、热情好客、美丽动人外,还寄托了莲花那高贵、纯洁的美好品质。\n3. 宸宸:代表世界上里程最长、工程量最大的古代运河京杭大运河。宸宸这一名字源于京杭大运河上的著名建筑拱宸桥,其寓意为机智勇敢、聪慧灵动、乐观向上、积极进取。\n",
                                        "2. \n莲莲:代表杭州的城市名片西湖,结合吉祥物莲莲身上的主色调,人们自然会想到西湖上的接天莲叶。这一吉祥物形象除了寓意纯洁善良、活泼可爱、热情好客、美丽动人外,还寄托了莲花那高贵、纯洁的美好品质。\n3. 宸宸:代表世界上里程最长、工程量最大的古代运河京杭大运河。宸宸这一名字源于京杭大运河上的著名建筑拱宸桥,其寓意为机智勇敢、聪慧灵动、乐观向上、积极进取。",
                                        "3. 宸宸:代表世界上里程最长、工程量最大的古代运河京杭大运河。宸宸这一名字源于京杭大运河上的著名建筑拱宸桥,其寓意为机智勇敢、聪慧灵动、乐观向上、积极进取。\n参考来源[1]琮琮(杭州第19届亚运会吉祥物)_百度百科百度百科[2]杭州亚运会吉祥物分别代表什么 一文详解2022年亚运会吉祥物美好寓意qtx.com\n杭州第19届亚运会的吉祥物是三个造型活泼可爱且又充满时代活力的机器人形象,分别是琮琮、莲莲和宸宸。\n1. \n琮琮:代表位于浙江省杭州市余杭区瓶窑镇内的良渚古城遗址。它的名字来源于良渚古城遗址出土的代表性文物玉琮,具有坚强刚毅、敦厚善良、体魄强健和热情奔放四大美好寓意。\n2. \n莲莲:代表杭州的城市名片西湖,结合吉祥物莲莲身上的主色调,人们自然会想到西湖上的接天莲叶。这一吉祥物形象除了寓意纯洁善良、活泼可爱、热情好客、美丽动人外,还寄托了莲花那高贵、纯洁的美好品质。\n"
                                    ],
                                    "index": 1,
                                    "searchSourceType": "SystemSearch",
                                    "searchSource": "QuarkCommonNews",
                                    "searchSourceName": "互联网搜索",
                                    "pubTime": "2024-08-09 05:48:52",
                                    "source": "百度百科",
                                    "title": "杭州第19届亚运会的吉祥物是三个造型活泼可爱且又充满时代活力的机器人形象,分别是琮琮、莲莲和宸宸。<",
                                    "content": "AI知识君全网内容智能分析杭州第19届亚运会的吉祥物是三个造型活泼可爱且又充满时代活力的机器人形象,分别是琮琮、莲莲和宸宸。\n1. \n琮琮:代表位于浙江省杭州市余杭区瓶窑镇内的良渚古城遗址。它的名字来源于良渚古城遗址出土的代表性文物玉琮,具有坚强刚毅、敦厚善良、体魄强健和热情奔放四大美好寓意。\n2. \n莲莲:代表杭州的城市名片西湖,结合吉祥物莲莲身上的主色调,人们自然会想到西湖上的接天莲叶。这一吉祥物形象除了寓意纯洁善良、活泼可爱、热情好客、美丽动人外,还寄托了莲花那高贵、纯洁的美好品质。\n3. 宸宸:代表世界上里程最长、工程量最大的古代运河京杭大运河。宸宸这一名字源于京杭大运河上的著名建筑拱宸桥,其寓意为机智勇敢、聪慧灵动、乐观向上、积极进取。\n参考来源[1]琮琮(杭州第19届亚运会吉祥物)_百度百科百度百科[2]杭州亚运会吉祥物分别代表什么 一文详解2022年亚运会吉祥物美好寓意qtx.com\n杭州第19届亚运会的吉祥物是三个造型活泼可爱且又充满时代活力的机器人形象,分别是琮琮、莲莲和宸宸。\n1. \n琮琮:代表位于浙江省杭州市余杭区瓶窑镇内的良渚古城遗址。它的名字来源于良渚古城遗址出土的代表性文物玉琮,具有坚强刚毅、敦厚善良、体魄强健和热情奔放四大美好寓意。\n2. \n莲莲:代表杭州的城市名片西湖,结合吉祥物莲莲身上的主色调,人们自然会想到西湖上的接天莲叶。这一吉祥物形象除了寓意纯洁善良、活泼可爱、热情好客、美丽动人外,还寄托了莲花那高贵、纯洁的美好品质。\n3. 宸宸:代表世界上里程最长、工程量最大的古代运河京杭大运河。宸宸这一名字源于京杭大运河上的著名建筑拱宸桥,其寓意为机智勇敢、聪慧灵动、乐观向上、积极进取。",
                                    "url": "https://page.sm.cn/blm/midpage-317/index?h=v7.wenda_llm.quark.cn&id=24_bef1416cd6f6aedf89355fa42e67cb20&from=kkframenew",
                                    "summary": "杭州第19届亚运会的吉祥物是三个造型活泼可爱且又充满时代活力的机器人形象,<em>分别是琮琮、莲莲和宸宸</em>。<br>1. 琮琮:代表位于浙江省杭州市余杭区瓶窑镇内的良渚古城遗址。它的名字来源于良渚古城遗址出土的代表性文物玉琮,具有坚强刚毅、敦厚善良、体魄强健和热情奔放四大美好寓意。<br>2. 莲莲:代表杭州的城市名片西湖,结合吉祥物莲莲身上的主色调,人们自然会想到西湖上的接天莲叶。这一吉祥物形象除了寓意纯洁善良、活泼可爱、热情好客、美丽动人外,还寄托了莲花那高贵、纯洁的美好品质。<br",
                                    "select": true,
                                    "score": 1.0,
                                    "rankScore": 2.6661994,
                                    "isChunk": true
                                }
                            ]
                        }
                    }
                },
                "agentName": "PlannerAgent"
            }
        },
        "usage": {
            "totalTokens": 693
        }
    },
    "header": {
        "sessionId": "32c02e8e-3498-4765-878e-2125fd5e7caa",
        "taskId": "67a91c00-54aa-4684-8eb3-cb9951cb8382",
        "event": "task-finished",
        "show": true,
        "eventInfo": "生成完成",
        "responseTime": 7525
    }
}

说明

关注event:task-finished:标识搜索生成完成。

四、业务场景最佳实践

4.1、场景一:互联网智能搜索

场景说明

无企业专属知识,走互联网通用领域知识进行智能搜索生成。

技术对接步骤

  1. 配置信源:

    1. “1.2.2、系统配置->通用/媒资搜索信源”下配置“互联网搜索”的开启&条数。

  2. 对接智能搜索API:

    1. “1.2.3、智能搜索”模块下API,指定“互联网搜索”数据集作为搜索源。

4.2、场景二:企业搜索API智能搜索

场景说明

企业有自己的搜索能力(可以是企业知识库搜索,也可以是三方通用领域搜索等),并提供了搜索API,可以走三方企业搜索API接入,加持妙搜大模型能力后,实现灵活的企业级智能搜索生成。

技术对接步骤:

  1. 准备三方企业搜索API:

    1. 按照推荐的API模板提供API(非标、或不支持的鉴权需要定开):三方搜索API模板。

  2. 配置三方企业搜索API:

    1. 提供账号、API定义给技术团队后台维护(未来会开放自定义三方API的维护能力)。

  3. 配置信源:

    1. “1.2.2、系统配置->通用/媒资搜索信源”下配置对应索引的开启&条数。

  4. 对接智能搜索API:

    1. “1.2.3、智能搜索”模块下API,指定对应数据集作为搜索源。

4.3、场景三:企业知识库智能搜索

场景说明:

有企业知识需要语义构建索引,或已有企业知识搜索能力效果不理想,可以考虑直接通过妙搜构建企业知识库语义索引,用来企业知识库智能搜索生成。

技术对接步骤:

  1. 数据对接:通过“1.2.1、数据源管理”模块下维护企业知识语义索引。

    1. 如果是poc或者临时固定数据集构建,可以联系技术团队后台批量导入

  2. 通过API构建:

    1. 数据集-新增接口:初始化一个新的数据集(全局一次)可以手动(curl)一次性提前创建好。

    2. 数据集-添加文档数据接口:往步骤i创建的数据集中添加企业知识。

  3. 配置信源:

    1. “1.2.2、系统配置->通用/媒资搜索信源”下配置对应索引的开启&条数。

  4. 对接智能搜索API:

    1. “1.2.3、智能搜索”模块下API,指定对应数据集作为搜索源。

 

三方搜索API模板,妙搜接入三方API时,推荐的API输入参数格式。

请求信息

  • 协议:HTTP(S)

  • header

    • Request Method:POST

    • Content-Type: application/json

  • 鉴权

    • Authorization:{{鉴权信息}}

    • 例如:

      • Authorization: Basic ${BasicToken}

      • Authorization: Bearer ${BasicToken}

请求参数

字段名

字段类型

是否必填

字段描述

字段示例值

query

String

搜索关键字

杭州亚运会

current

Integer

当前页:默认1

1

size

Integer

返回数据条数:默认20

20

includeContent

Boolean

是否包含正文:默认true

true

响应信息

  • header

  • Content-Type: application/json

响应参数

字段名

字段类型

字段描述

字段示例值

success

Boolean

请求是否成功

true

code

String

响应码:请求失败时返回的响应码

Error

message

String

响应错误信息

内部错误

data

List<Article>

文章数据

current

Integer

当前页

1

size

Integer

返回数据条数

20

total

Integer

总条数

100

Article

字段名

字段类型

是否必须

字段描述

字段示例值

source

String

文章来源

央视网

title

String

文章标题

杭州亚运会

content

String

文章内容

无论是“大莲花”“小莲花”“大玉琮”“杭州伞”等场馆造型。

url

String

文章URL

http://news.cctv.com/2023/08/29/ARTIZeHbELfOWLgviHk1IxGb230829.shtml

summary

String

文章摘要

如无,取前n字

pubTime

String

文章发布时间

2023-01-01 12:01:01

示例

请求

curl -X POST --location '{{url}}' \
    -H 'Authorization: basic {{BasicToken}}' \
    -H 'Content-Type: application/json' \
    -d '{
          "query": "杭州亚运会"
        }'

响应

{
  "success": true,
  "code": "",
  "message": "",
  "data": [
    "source": "",
    "title": "",
    "content": "",
    "url": "",
    "summary": "摘要",
    "pubTime": "2023-01-01 12:01:01"
  ]
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2189714.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【3D目标检测】激光雷达和相机联合标定(一)——ROS同步解包

ROS同步解包 引言1 鱼香ROS一键安装ros-docker脚本&#xff1a;2 指定目录映射3 数据解包3.1 解包脚本3.2 依赖安装3.3 运行脚本&#xff0c;解包 引言 总结步骤如下&#xff1a; 采集同步数据&#xff1a;ROS录制&#xff08;推荐&#xff09;&#xff0c;或者代码同步触发采…

C++入门基础知识99——【关于C++ 成员运算符】

成长路上不孤单&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a; 【14后&#x1f60a;///C爱好者&#x1f60a;///持续分享所学&#x1f60a;///如有需要欢迎收藏转发///&#x1f60a;】 今日分享关于C 成员运算符的相关内容&#xff01; 关…

昇思学习打卡营第32天|基于ResNet50的中药炮制饮片质量判断模型

背景介绍 中药炮制是根据中医药理论&#xff0c;依照临床用药需求&#xff0c;通过调剂和制剂要求&#xff0c;将中药材制备成中药饮片的过程。老百姓日常使用的中药饮片&#xff0c;是中药炮制技术的成果。中药炮制过程中&#xff0c;尤其是涉及到水火处理时&#xff0c;必须注…

CNN模型对CIFAR-10中的图像进行分类

代码功能 这段代码展示了如何使用 Keras 和 TensorFlow 构建一个卷积神经网络&#xff08;CNN&#xff09;模型&#xff0c;用于对 CIFAR-10 数据集中的图像进行分类。主要功能包括&#xff1a; 加载数据&#xff1a;从 CIFAR-10 数据集加载训练和测试图像。 数据预处理&#…

HTTP【网络】

文章目录 HTTPURL(Uniform Resource Lacator) HTTP协议格式HTTP的方法HTTP的状态码HTTP常见的Header HTTP 超文本传输协议&#xff0c;是一个简单的请求-响应协议&#xff0c;HTTP通常运行在TCP之上 URL(Uniform Resource Lacator) 一资源定位符&#xff0c;也就是通常所说的…

NIM简单实践-图像分割

项目背景 我正在学习一个图像分割的 Demo&#xff0c;使用 NVIDIA 提供的预训练大模型进行光学字符检测 (OCDNet) 和光学字符识别 (OCRNet)。这些模型专门为光学字符检测和识别设计&#xff0c;能够自动将图像中的字符进行分割和识别。 预训练模型介绍 OCDNet (Optical Char…

Windows NTLM中继攻击(PortBender二进制可执行文件)

Windows NTLM中继攻击&#xff08;PortBender二进制可执行文件) 前言 最近在完善自己的一套TTPs&#xff08;战术、技术和程序&#xff09;以应对未来的网络作战、项目和攻防演练需求&#xff0c;翻到了PortBender&#xff0c;我觉得不依赖C2和影响主机本身实现这一切非常有趣…

如何使用ssm实现民族大学创新学分管理系统分析与设计+vue

TOC ssm763民族大学创新学分管理系统分析与设计vue 第1章 绪论 1.1 课题背景 二十一世纪互联网的出现&#xff0c;改变了几千年以来人们的生活&#xff0c;不仅仅是生活物资的丰富&#xff0c;还有精神层次的丰富。在互联网诞生之前&#xff0c;地域位置往往是人们思想上不…

Linux 生产者消费者模型

前言 生产者消费者模型&#xff08;CP模型&#xff09;是一种十分经典的设计&#xff0c;常常用于多执行流的并发问题中&#xff01;很多书上都说他很高效&#xff0c;但高效体现在哪里并没有说明&#xff01;本博客将详解&#xff01; 目录 前言 一、生产者消费者模型 1.…

绝美的登录界面!滑动切换效果

绝美登录界面&#xff01;添加了管理员账号和测试账号 <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><scri…

RC正弦波振荡电路

0、判断电路能否产生正弦波震荡的条件 如上图所示&#xff0c; Xo:输出量&#xff1b; A:放大器的增益&#xff1b; F:反馈系数。 上式分别为RC正弦波震荡器的幅值条件和相位条件&#xff0c;为了使输出量在合闸后能够有一个从小到大直至平衡在一定幅值的过程&#xff0c;电…

《Linux服务与安全管理》| 配置YUM源并验证

《Linux服务与安全管理》配置YUM源并验证 目录 《Linux服务与安全管理》配置YUM源并验证 任务一&#xff1a;配置本地YUM源 任务二&#xff1a;配置网络YUM源 学生姓名 **** 学号 **** 专业 **** 任务名称 配置YUM源并验证 完成日期 **** 任务目标 知识 了解配…

docker安装kafka-manager

kafkamanager docker安装_mob64ca12d80f3a的技术博客_51CTO博客 # 1、拉取镜像及创建容器 docker pull hlebalbau/kafka-manager docker run -d --name kafka-manager -p 9000:9000 --networkhost hlebalbau/kafka-manager# 2、增设端口 腾讯云# 3、修改防火墙 sudo firewall-…

Salesforce AI 推全新大语言模型评估家族SFR-Judge 基于Llama3构建

在自然语言处理领域&#xff0c;大型语言模型&#xff08;LLMs&#xff09;的发展迅速&#xff0c;已经在多个领域取得了显著的进展。不过&#xff0c;随着模型的复杂性增加&#xff0c;如何准确评估它们的输出就变得至关重要。传统上&#xff0c;我们依赖人类来进行评估&#…

【目标检测】yolo的三种数据集格式

目标检测中数据集格式之间的相互转换--coco、voc、yolohttps://zhuanlan.zhihu.com/p/461488682?utm_mediumsocial&utm_psn1825483604463071232&utm_sourcewechat_session【目标检测】yolo的三种数据集格式https://zhuanlan.zhihu.com/p/525950939?utm_mediumsocial&…

Python小示例——质地不均匀的硬币概率统计

在概率论和统计学中&#xff0c;随机事件的行为可以通过大量实验来研究。在日常生活中&#xff0c;我们经常用硬币进行抽样&#xff0c;比如抛硬币来决定某个结果。然而&#xff0c;当我们处理的是“质地不均匀”的硬币时&#xff0c;事情就变得复杂了。质地不均匀的硬币意味着…

【宽搜】4. leetcode 103 二叉树的锯齿形层序遍历

1 题目描述 题目链接&#xff1a;二叉树的锯齿形层序遍历 2 题目解析 根据题目描述&#xff0c;第一行是从左往右遍历&#xff0c;第二行是从右往左遍历。和层序遍历的区别就是&#xff1a; 在偶数行需要从右往左遍历。 因此&#xff0c;只需要在层序遍历的基础上增加一个变…

网络基础:TCP/IP五层模型、数据在局域网传输和跨网络传输的基本流程、IP地址与MAC地址的简单解析

目录 背景介绍 网络协议 OSI七层模型 TCP/IP五层模型 TCP/IP协议与OS的关系 网络协议的本质 数据在局域网传输的基本流程 MAC地址 报文的封装和解包 补充内容 数据的跨网络传输基本流程 IP地址 IP地址和MAC地址的区别 ​​​ 背景介绍 网络的发展经理了四个阶段…

dijstra算法——单元最短路径算法

Dijkstra算法 用来计算从一个点到其他所有点的最短路径的算法&#xff0c;是一种单源最短路径算法。也就是说&#xff0c;只能计算起点只有一个的情况。Dijkstra的时间复杂度是O(n^2)&#xff0c;它不能处理存在负边权的情况。 算法描述&#xff1a; 设起点为s&#xff0c;d…

云原生(四十六) | MySQL软件安装部署

文章目录 MySQL软件安装部署 一、MySQL软件部署步骤 二、安装MySQL MySQL软件安装部署 一、MySQL软件部署步骤 第一步&#xff1a;删除系统自带的mariadb 第二步&#xff1a;下载MySQL源&#xff0c;安装MySQL软件 第三步&#xff1a;启动MySQL&#xff0c;获取默认密码…