插件-知识库

更新时间:

鉴权

字段

传参方式

类型

必传

描述

示例值

Authorization

header

String

API-Key

Bearer d1**2a

路由配置

备注:SDK已封装好路由关系,通过SDK调用接口,无需设置接口路由配置。

字段

传参方式

类型

必传

描述

示例值

x-fag-appcode

header

String

应用表示,固定为 aca

x-fag-servicename

header

String

请求路由标识,不同接口值不一样,映射管理参考

aca-character-create

x-fag-servicename 与接口映射关系

接口

路径

x-fag-appcode

创建知识库

/v2/api/knowledge_base/create

aca-kb-create

修改知识库

/v2/api/knowledge_base/update

aca-kb-update

查询知识库

/v2/api/knowledge_base/search

aca-kb-search

删除知识库

/v2/api/knowledge_base/delete

aca-kb-delete

知识库文件上传

/v2/api/knowledge_base/detail/upload

aca-kb-detail-upload

知识库文件修改

/v2/api/knowledge_base/detail/update

aca-kb-detail-update

知识库文件查询

/v2/api/knowledge_base/detail/delete

aca-kb-detail-delete

知识库文件删除

/v2/api/knowledge_base/detail/search

aca-kb-detail-search

知识库管理

知识库创建

接口

POST /v2/api/knowledge_base/create

入参

名称

类型

是否必传

说明

name

string

知识库名称,长度为20字符以内

description

string

知识库描述,长度为200字符以内

返回参数

名称

类型

说明

code

int

返回码,正常返回200,异常返回空

success

bool

正常返回 true,异常返回null

requestId

string

请求唯一标识

data

object

请求返回内容

data.knowledgeBaseId

string

知识库id

data.name

string

知识库名称

data.description

string

知识库描述

知识库修改

接口

POST /v2/api/knowledge_base/update

入参

名称

类型

是否必传

说明

knowledgeBaseId

string

知识库id

name

string

知识库名称,长度为20字符以内

description

string

知识库描述,长度为200字符以内

返回参数

名称

类型

说明

code

int

返回码,正常返回200,异常返回空

success

bool

正常返回 true,异常返回null

requestId

string

请求唯一标识

data

bool

是否修改成功

知识库查询

接口

POST /v2/api/knowledge_base/search

入参

名称

类型

是否必传

说明

pageNum

int

否(默认1)

分页页码

pageSize

ing

否(默认30)

分页大小

返回参数

名称

类型

说明

code

int

返回码,正常返回200,异常返回空

success

bool

正常返回 true,异常返回null

requestId

string

请求唯一标识

data

object

请求返回内容

data.page

int

分页页码

data.pageSize

int

分页大小

data.total

int

总数

data.list

array

数据

data.list[i].id

int

知识库主键id

data.list[i].knowledgeBaseId

string

知识库id

data.list[i].name

string

知识库名称

data.list[i].gmtCreate

int

知识库创建时间

data.list[i].gmtModified

int

知识库修改时间

data.list[i].description

string

知识库描述

data.list[i].count

int

知识库下文件详情数量

知识库删除

接口

POST /v2/api/knowledge_base/delete

入参

名称

类型

是否必传

说明

knowledgeBaseId

string

知识库id

返回参数

名称

类型

说明

code

int

返回码,正常返回200,异常返回空

success

bool

正常返回 true,异常返回null

requestId

string

请求唯一标识

data

bool

是否修改成功

知识库文件上传

接口

POST /v2/api/knowledge_base/detail/upload

入参

名称

类型

是否必传

说明

knowledgeBaseId

string

知识库id

type

string

文件类型:text,formdocument

fileInfos

array

上传文件集合

fileInfos[i].filename

string

文件名称,以文件格式后缀结尾

fileInfos[i].fileUrl

string

公网可访问地址

返回参数

名称

类型

说明

code

int

返回码,正常返回200,异常返回空

success

bool

正常返回 true,异常返回null

requestId

string

请求唯一标识

data

bool

是否上传成功

知识库文件修改

接口

POST /v2/api/knowledge_base/detail/update

入参

名称

类型

是否必传

说明

knowledgeBaseId

string

知识库id

name

string

现在文件的名称

newName

string

修改的名称

返回参数

名称

类型

说明

code

int

返回码,正常返回200,异常返回空

success

bool

正常返回 true,异常返回null

requestId

string

请求唯一标识

data

bool

是否修改成功

知识库文件查询

接口

POST /v2/api/knowledge_base/detail/search

入参

名称

类型

是否必传

说明

knowledgeBaseId

string

知识库id

pageNum

int

否(默认1)

分页页码

pageSize

ing

否(默认30)

分页大小

返回参数

名称

类型

说明

code

int

返回码,正常返回200,异常返回空

success

bool

正常返回 true,异常返回null

requestId

string

请求唯一标识

data

object

请求返回内容

data.page

int

分页页码

data.pageSize

int

分页大小

data.total

int

总数

data.list

array

数据

data.list[i].id

int

知识库详情主键id

data.list[i].knowledgeBaseId

string

知识库id

data.list[i].name

string

知识库详情名称

data.list[i].gmtCreate

int

知识库详情创建时间

data.list[i].gmtModified

int

知识库详情修改时间

data.list[i].type

string

知识库详情类型

data.list[i].status

int

知识库详情数状态不

data.list[i].fileInfo

object

文件详情

data.list[i].fileInfo.filename

string

文件名

data.list[i].fileInfo.fileSavePath

string

oss路径

data.list[i].fileInfo.fileUrl

string

转存后的地址

知识库文件删除

接口

POST /v2/api/knowledge_base/detail/delete

入参

名称

类型

是否必传

说明

knowledgeBaseId

string

知识库id

name

string

知识库文件详情名称

返回参数

名称

类型

说明

code

int

返回码,正常返回200,异常返回空

success

bool

正常返回 true,异常返回null

requestId

string

请求唯一标识

data

bool

是否修改成功

示例参考

知识库创建

调用示例

curl --location 'https://nlp.aliyuncs.com/v2/api/knowledge_base/create' \
--header 'Expect;' \
--header 'accept: */*' \
--header 'Content-Type: application/json' \
--header 'x-fag-servicename: aca-kb-create' \
--header 'x-fag-appcode: aca' \
--header 'Authorization: Bearer {YOUR_API_KEY}' \
--data '{
            "name": "知识库名称",
            "description": "知识库描述"
        }'
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

/**
 * API名称:知识库创建
 * 环境要求:Java 17及以上
 */
public class Example {
    private static final String URL = "https://nlp.aliyuncs.com/v2/api/knowledge_base/create";
    private static final String API_KEY = "Bearer {YOUR_API_KEY}";

    public static void main(String[] args) throws Exception {
        // 创建
        create();
    }

    private static void create() throws Exception {
        System.out.println("=== 知识库创建 ===");
        String jsonBody = """
            {
                "name": "知识库名称",
                "description": "知识库描述"
            }
        """;

        HttpClient client = HttpClient.newHttpClient();

        HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create(URL))
                .headers(
                        "Authorization", API_KEY,
                        // 固定servicename
                        "x-fag-servicename", "aca-kb-create",
                        "x-fag-appcode", "aca",
                        "Content-Type", "application/json")
                .POST(HttpRequest.BodyPublishers.ofString(jsonBody))
                .build();

        // 同步调用
        HttpResponse<String> response = client.send(
                request,
                HttpResponse.BodyHandlers.ofString()
        );

        String responseBody = response.body();
        System.out.println("响应数据: " + responseBody);
    }
}
import requests

URL = "https://nlp.aliyuncs.com/v2/api/knowledge_base/create"

# API名称:知识库创建
# 环境要求:python3.10及以上

# 创建
def create(api_key):
    headers = {
        "Content-Type": "application/json",
        "x-fag-servicename": "aca-kb-create",
        "x-fag-appcode": "aca",
        "Authorization": f"Bearer {api_key}"
    }

    payload = {
        "name": "知识库名称",
        "description": "知识库描述"
    }

    response = requests.post(URL, json=payload, headers=headers)
    # 逐行打印原始响应内容
    for line in response.iter_lines():
        if line:
            print(line.decode('utf-8'))
    # 检查响应状态,如有错误则抛出异常
    response.raise_for_status()
    return response

if __name__ == "__main__":
    api_key = "YOUR_API_KEY"
    model_name = "xingchen-plus-latest"
    try:
        # 创建知识库
        response = create(api_key)
    except requests.HTTPError as e:
        print(f"请求出错: {e}")
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "io"
    "net/http"
)

// API名称:知识库创建
// 环境要求:go 1.20及以上

const URL = "https://nlp.aliyuncs.com/v2/api/knowledge_base/create"

// 创建知识库
func create(apiKey string) (*http.Response, error) {
    payload := map[string]interface{}{
        "name":        "知识库名称",
        "description": "知识库描述",
    }

    payloadBytes, err := json.Marshal(payload)
    if err != nil {
        return nil, err
    }

    req, err := http.NewRequest("POST", URL, bytes.NewBuffer(payloadBytes))
    if err != nil {
        return nil, err
    }

    req.Header.Set("Content-Type", "application/json")
    req.Header.Set("x-fag-servicename", "aca-kb-create")
    req.Header.Set("x-fag-appcode", "aca")
    req.Header.Set("Authorization", "Bearer "+apiKey)
    client := &http.Client{}
    resp, err := client.Do(req)
    if err != nil {
        return nil, err
    }

    // 逐行打印原始响应内容
    defer resp.Body.Close()
    body, _ := io.ReadAll(resp.Body)
    fmt.Println(string(body))

    if resp.StatusCode != http.StatusOK {
        return nil, fmt.Errorf("请求出错,状态码:%d", resp.StatusCode)
    }

    return resp, nil
}

func main() {

    apiKey := "YOUR_API_KEY"
    // 创建知识库
    _, err := create(apiKey)
    if err != nil {
        fmt.Printf("请求出错: %v\n", err)
    }
}

返回示例

{
    "requestId": "80153dfe-3a44-448e-9076-e65321aa3cce",
    "code": 200,
    "data": {
        "knowledgeBaseId": "1358303662ed4b63b93e1ba3d2473cb0",
        "name": "知识库名称",
        "description": "知识库描述"
    },
    "success": true
}

知识库修改

调用示例

curl --location 'https://nlp.aliyuncs.com/v2/api/knowledge_base/update' \
--header 'Expect;' \
--header 'accept: */*' \
--header 'Content-Type: application/json' \
--header 'x-fag-servicename: aca-kb-update' \
--header 'x-fag-appcode: aca' \
--header 'Authorization: Bearer {YOUR_API_KEY}' \
--data '{
            "knowledgeBaseId": "知识库id",
            "name": "知识库名称",
            "description": "知识库描述"
        }'
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

/**
 * API名称:知识库修改
 * 环境要求:Java 17及以上
 */
public class Example {
    private static final String URL = "https://nlp.aliyuncs.com/v2/api/knowledge_base/update";
    private static final String API_KEY = "Bearer {YOUR_API_KEY}";

    public static void main(String[] args) throws Exception {
        // 修改
        update();
    }

    private static void update() throws Exception {
        System.out.println("=== 知识库修改 ===");
        String jsonBody = """
            {
             "knowledgeBaseId": "替换knowledgeBaseId",
             "name": "知识库名称修改",
             "description": "知识库描述修改"
            }
        """;

        HttpClient client = HttpClient.newHttpClient();

        HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create(URL))
                .headers(
                        "Authorization", API_KEY,
                        // 固定servicename
                        "x-fag-servicename", "aca-kb-update",
                        "x-fag-appcode", "aca",
                        "Content-Type", "application/json")
                .POST(HttpRequest.BodyPublishers.ofString(jsonBody))
                .build();

        // 同步调用
        HttpResponse<String> response = client.send(
                request,
                HttpResponse.BodyHandlers.ofString()
        );

        String responseBody = response.body();
        System.out.println("响应数据: " + responseBody);
    }
}
import requests

URL = "https://nlp.aliyuncs.com/v2/api/knowledge_base/update"

# API名称:知识库修改
# 环境要求:python3.10及以上

# 修改
def update(api_key):
    headers = {
        "Content-Type": "application/json",
        "x-fag-servicename": "aca-kb-update",
        "x-fag-appcode": "aca",
        "Authorization": f"Bearer {api_key}"
    }

    payload = {
        "knowledgeBaseId": "YOUR_KNOW_ID",
        "name": "知识库名称3",
        "description": "知识库描述3"
    }

    response = requests.post(URL, json=payload, headers=headers)
    # 逐行打印原始响应内容
    for line in response.iter_lines():
        if line:
            print(line.decode('utf-8'))
    # 检查响应状态,如有错误则抛出异常
    response.raise_for_status()
    return response

if __name__ == "__main__":
    api_key = "YOUR_API_KEY"
    model_name = "xingchen-plus-latest"
    try:
        # 修改知识库
        response = update(api_key)
    except requests.HTTPError as e:
        print(f"请求出错: {e}")
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "io"
    "net/http"
)

// API名称:知识库修改
// 环境要求:go 1.20及以上

const URL = "https://nlp.aliyuncs.com/v2/api/knowledge_base/update"

// 修改知识库
func update(apiKey string) (*http.Response, error) {
    payload := map[string]interface{}{
        "knowledgeBaseId": "替换knowledgeBaseId",
        "name":            "知识库名称",
        "description":     "知识库描述",
    }

    payloadBytes, err := json.Marshal(payload)
    if err != nil {
        return nil, err
    }

    req, err := http.NewRequest("POST", URL, bytes.NewBuffer(payloadBytes))
    if err != nil {
        return nil, err
    }

    req.Header.Set("Content-Type", "application/json")
    req.Header.Set("x-fag-servicename", "aca-kb-update")
    req.Header.Set("x-fag-appcode", "aca")
    req.Header.Set("Authorization", "Bearer "+apiKey)
    client := &http.Client{}
    resp, err := client.Do(req)
    if err != nil {
        return nil, err
    }

    // 逐行打印原始响应内容
    defer resp.Body.Close()
    body, _ := io.ReadAll(resp.Body)
    fmt.Println(string(body))

    if resp.StatusCode != http.StatusOK {
        return nil, fmt.Errorf("请求出错,状态码:%d", resp.StatusCode)
    }

    return resp, nil
}

func main() {

    // 修改知识库
    _, err := update(apiKey)
    if err != nil {
        fmt.Printf("请求出错: %v\n", err)
    }
}

返回示例

{
    "requestId": "0e18df96-9f56-4cd2-8175-5d0072c3f1d7",
    "code": 200,
    "data": true,
    "success": true
}

知识库查询

调用示例

curl --location 'https://nlp.aliyuncs.com/v2/api/knowledge_base/search' \
--header 'Expect;' \
--header 'accept: */*' \
--header 'Content-Type: application/json' \
--header 'x-fag-servicename: aca-kb-search' \
--header 'x-fag-appcode: aca' \
--header 'Authorization: Bearer {YOUR_API_KEY}' \
--data '{
            "pageNum": 1,
            "pageSize": 10
        }'
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

/**
 * API名称:知识库查询
 * 环境要求:Java 17及以上
 */
public class Example {
    private static final String URL = "https://nlp.aliyuncs.com/v2/api/knowledge_base/search";
    private static final String API_KEY = "Bearer {YOUR_API_KEY}";

    public static void main(String[] args) throws Exception {
        // 查询
        search();
    }

    private static void search() throws Exception {
        System.out.println("=== 知识库查询 ===");
        String jsonBody = """
            {
                "pageNum": 1,
                "pageSize": 10
            }
        """;

        HttpClient client = HttpClient.newHttpClient();

        HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create(URL))
                .headers(
                        "Authorization", API_KEY,
                        // 固定servicename
                        "x-fag-servicename", "aca-kb-search",
                        "x-fag-appcode", "aca",
                        "Content-Type", "application/json")
                .POST(HttpRequest.BodyPublishers.ofString(jsonBody))
                .build();

        // 同步调用
        HttpResponse<String> response = client.send(
                request,
                HttpResponse.BodyHandlers.ofString()
        );

        String responseBody = response.body();
        System.out.println("响应数据: " + responseBody);
    }
}
import requests

URL = "https://nlp.aliyuncs.com/v2/api/knowledge_base/search"

# API名称:知识库查询
# 环境要求:python3.10及以上

# 查询
def search(api_key):
    headers = {
        "Content-Type": "application/json",
        "x-fag-servicename":"aca-kb-search",
        "x-fag-appcode": "aca",
        "Authorization": f"Bearer {api_key}"
    }

    payload = {
        "pageNum": 1,
        "pageSize": 10
    }

    response = requests.post(URL, json=payload, headers=headers)
    # 逐行打印原始响应内容
    for line in response.iter_lines():
        if line:
            print(line.decode('utf-8'))
    # 检查响应状态,如有错误则抛出异常
    response.raise_for_status()
    return response

if __name__ == "__main__":
    api_key = "YOUR_API_KEY"
    model_name = "xingchen-plus-latest"
    try:
        # 查询知识库
        response = search(api_key)
    except requests.HTTPError as e:
        print(f"请求出错: {e}")
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "io"
    "net/http"
)

// API名称:知识库查询
// 环境要求:go 1.20及以上

const URL = "https://nlp.aliyuncs.com/v2/api/knowledge_base/search"



// 查询知识库
func search(apiKey string) (*http.Response, error) {
    payload := map[string]interface{}{
        "pageNum":  1,
        "pageSize": 10,
    }

    payloadBytes, err := json.Marshal(payload)
    if err != nil {
        return nil, err
    }

    req, err := http.NewRequest("POST", URL, bytes.NewBuffer(payloadBytes))
    if err != nil {
        return nil, err
    }

    req.Header.Set("Content-Type", "application/json")
    req.Header.Set("x-fag-servicename", "aca-kb-search")
    req.Header.Set("x-fag-appcode", "aca")
    req.Header.Set("Authorization", "Bearer "+apiKey)
    client := &http.Client{}
    resp, err := client.Do(req)
    if err != nil {
        return nil, err
    }

    // 逐行打印原始响应内容
    defer resp.Body.Close()
    body, _ := io.ReadAll(resp.Body)
    fmt.Println(string(body))

    if resp.StatusCode != http.StatusOK {
        return nil, fmt.Errorf("请求出错,状态码:%d", resp.StatusCode)
    }

    return resp, nil
}

func main() {

    apiKey := "YOUR_API_KEY"
    // 查询知识库
    _, err := search(apiKey)
    if err != nil {
        fmt.Printf("请求出错: %v\n", err)
    }
}

返回示例

{
    "requestId": "5bad2a93-9889-4a16-bccf-fd162dcc0f46",
    "code": 200,
    "data": {
        "list": [
            {
                "id": 9922,
                "gmtCreate": 1755828181000,
                "gmtModified": 1755828229000,
                "knowledgeBaseId": "538656e030d646e3bdb743bde55ee0e0",
                "name": "知识库名称",
                "userId": "5ed33fdb8d9d4d1489e44efb5c41312b",
                "bizUserId": "",
                "description": "知识库描述",
                "isDeleted": 0,
                "offlineConfig": {
                    "textVectorModel": "text-embedding-v2",
                    "language": "cn",
                    "textChunkStrategy": "clever"
                },
                "onlineConfig": {
                    "multiRoundQueryRewrite": true,
                    "textEmbedding": true,
                    "searchJudgment": true,
                    "rank": true
                },
                "knowledgeType": "text",
                "count": 0
            }
        ],
        "page": 1,
        "pageSize": 10,
        "total": 1
    },
    "success": true
}

知识库删除

调用示例

curl --location 'https://nlp.aliyuncs.com/v2/api/knowledge_base/delete' \
--header 'Expect;' \
--header 'accept: */*' \
--header 'Content-Type: application/json' \
--header 'x-fag-servicename: aca-kb-delete' \
--header 'x-fag-appcode: aca' \
--header 'Authorization: Bearer {YOUR_API_KEY}' \
--data '{
            "knowledgeBaseId": "知识库id"
        }'
/**
 * API名称:知识库删除
 * 环境要求:Java 17及以上
 */
public class Example {
    private static final String URL = "https://nlp.aliyuncs.com/v2/api/knowledge_base/delete";
    private static final String API_KEY = "Bearer {YOUR_API_KEY}";

    public static void main(String[] args) throws Exception {
       // 删除
       delete();
    }
    private static void delete() throws Exception {
        System.out.println("=== 知识库删除 ===");
        String jsonBody = """
            {
                "knowledgeBaseId": "替换knowledgeBaseId"
            }
        """;

        HttpClient client = HttpClient.newHttpClient();

        HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create(URL))
                .headers(
                        "Authorization", API_KEY,
                        // 固定servicename
                        "x-fag-servicename", "aca-kb-delete",
                        "x-fag-appcode", "aca",
                        "Content-Type", "application/json")
                .POST(HttpRequest.BodyPublishers.ofString(jsonBody))
                .build();

        // 同步调用
        HttpResponse<String> response = client.send(
                request,
                HttpResponse.BodyHandlers.ofString()
        );

        String responseBody = response.body();
        System.out.println("响应数据: " + responseBody);
    }
}
import requests

URL = "https://nlp.aliyuncs.com/v2/api/knowledge_base/delete"

# API名称:知识库删除
# 环境要求:python3.10及以上

# 删除
def delete(api_key):
    headers = {
        "Content-Type": "application/json",
        "x-fag-servicename": "aca-kb-delete",
        "x-fag-appcode": "aca",
        "Authorization": f"Bearer {api_key}"
    }

    payload = {
        "knowledgeBaseId": "YOUR_KNOW_ID"
    }

    response = requests.post(URL, json=payload, headers=headers)
    # 逐行打印原始响应内容
    for line in response.iter_lines():
        if line:
            print(line.decode('utf-8'))
    # 检查响应状态,如有错误则抛出异常
    response.raise_for_status()
    return response

if __name__ == "__main__":
    api_key = "YOUR_API_KEY"
    model_name = "xingchen-plus-latest"
    try:
        # 删除知识库
        response = delete(api_key)
    except requests.HTTPError as e:
        print(f"请求出错: {e}")
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "io"
    "net/http"
)

// API名称:知识库删除
// 环境要求:go 1.20及以上

const URL = "https://nlp.aliyuncs.com/v2/api/knowledge_base/delete"

// 删除
func delete(apiKey string) (*http.Response, error) {
    payload := map[string]interface{}{
        "knowledgeBaseId": "替换knowledgeBaseId",
    }

    payloadBytes, err := json.Marshal(payload)
    if err != nil {
        return nil, err
    }

    req, err := http.NewRequest("POST", URL, bytes.NewBuffer(payloadBytes))
    if err != nil {
        return nil, err
    }

    req.Header.Set("Content-Type", "application/json")
    req.Header.Set("x-fag-servicename", "aca-kb-delete")
    req.Header.Set("x-fag-appcode", "aca")
    req.Header.Set("Authorization", "Bearer "+apiKey)
    client := &http.Client{}
    resp, err := client.Do(req)
    if err != nil {
        return nil, err
    }

    // 逐行打印原始响应内容
    defer resp.Body.Close()
    body, _ := io.ReadAll(resp.Body)
    fmt.Println(string(body))

    if resp.StatusCode != http.StatusOK {
        return nil, fmt.Errorf("请求出错,状态码:%d", resp.StatusCode)
    }

    return resp, nil
}

func main() {

    apiKey := "YOUR_API_KEY"
    
    // 删除知识库
    _, err := delete(apiKey)
    if err != nil {
        fmt.Printf("请求出错: %v\n", err)
    }
}

返回示例

{
    "requestId": "a2ff0262-7c43-4537-92cd-dfa15120f7ee",
    "code": 200,
    "data": true,
    "success": true
}

知识库文件上传

说明

最多上传10个知识库文件,单个文件大小不超过4M。

调用示例

curl --location 'https://nlp.aliyuncs.com/v2/api/knowledge_base/detail/upload' \
--header 'Expect;' \
--header 'accept: */*' \
--header 'Content-Type: application/json' \
--header 'x-fag-servicename: aca-kb-detail-upload' \
--header 'x-fag-appcode: aca' \
--header 'Authorization: Bearer {YOUR_API_KEY}' \
--data '{
            "knowledgeBaseId": "知识库id",
            "type": "text",
            "fileInfos": [
                {
                    "filename": "文件名.txt",
                    "fileUrl": "公网可访问地址"				
                }
            ]
        }'
/**
 * API名称:知识库文件上传
 * 环境要求:Java 17及以上
 */
public class Example {
    private static final String URL = "https://nlp.aliyuncs.com/v2/api/knowledge_base/detail/upload";
    private static final String API_KEY = "Bearer {YOUR_API_KEY}";

    public static void main(String[] args) throws Exception {
        // 上传
       upload();
    }

    private static void upload() throws Exception {
        System.out.println("=== 知识库文件上传 ===");
        String jsonBody = """
        {
         "knowledgeBaseId": "d1f5c2797e9e4e80ac7a6363c830d31a",
         "type": "text",
         "fileInfos": [
             {
                 "fileUrl": "https://lang.alicdn.com/xingchen/guanyu.txt",
                 "filename": "guanyu.txt"
             }
         ]
        }
        """;

        HttpClient client = HttpClient.newHttpClient();

        HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create(URL))
                .headers(
                        "Authorization", API_KEY,
                        // 固定servicename
                        "x-fag-servicename", "aca-kb-detail-upload",
                        "x-fag-appcode", "aca",
                        "Content-Type", "application/json")
                .POST(HttpRequest.BodyPublishers.ofString(jsonBody))
                .build();

        // 同步调用
        HttpResponse<String> response = client.send(
                request,
                HttpResponse.BodyHandlers.ofString()
        );

        String responseBody = response.body();
        System.out.println("响应数据: " + responseBody);
    }
}
import requests

URL = "https://nlp.aliyuncs.com/v2/api/knowledge_base/detail/upload"

# API名称:知识库文件上传
# 环境要求:python3.10及以上

# 上传
def upload(api_key):
    headers = {
        "Content-Type": "application/json",
        "x-fag-servicename": "aca-kb-detail-upload",
        "x-fag-appcode": "aca",
        "Authorization": f"Bearer {api_key}"
    }

    payload = {
        "knowledgeBaseId": "替换knowledgeBaseId",
        "type": "text",
        "fileInfos": [
            {
                "fileUrl": "https://lang.alicdn.com/xingchen/guanyu.txt",
                "filename": "guanyu3.txt"
            }
        ]
    }

    response = requests.post(URL, json=payload, headers=headers)
    # 逐行打印原始响应内容
    for line in response.iter_lines():
        if line:
            print(line.decode('utf-8'))
    # 检查响应状态,如有错误则抛出异常
    response.raise_for_status()
    return response

if __name__ == "__main__":
    api_key = "YOUR_API_KEY"
    model_name = "xingchen-plus-latest"
    try:
        # 上传知识库文件
        response = upload(api_key)
    except requests.HTTPError as e:
        print(f"请求出错: {e}")
package main

import (
	"bytes"
	"encoding/json"
	"fmt"
	"io"
	"net/http"
)

// API名称:知识库文件上传
// 环境要求:go 1.20及以上

const URL = "https://nlp.aliyuncs.com/v2/api/knowledge_base/detail/upload"

// 上传
func upload(apiKey string) (*http.Response, error) {
	payload := map[string]interface{}{
		"knowledgeBaseId": "替换knowledgeBaseId",
		"type":            "text",
		"fileInfos": []map[string]string{
			{
				"fileUrl":  "https://lang.alicdn.com/xingchen/guanyu.txt",
				"filename": "guanyu.txt",
			},
		},
	}

	payloadBytes, err := json.Marshal(payload)
	if err != nil {
		return nil, err
	}

	req, err := http.NewRequest("POST", URL, bytes.NewBuffer(payloadBytes))
	if err != nil {
		return nil, err
	}

	req.Header.Set("Content-Type", "application/json")
	req.Header.Set("x-fag-servicename", "aca-kb-detail-upload")
	req.Header.Set("x-fag-appcode", "aca")
	req.Header.Set("Authorization", "Bearer "+apiKey)
	client := &http.Client{}
	resp, err := client.Do(req)
	if err != nil {
		return nil, err
	}

	// 逐行打印原始响应内容
	defer resp.Body.Close()
	body, _ := io.ReadAll(resp.Body)
	fmt.Println(string(body))

	if resp.StatusCode != http.StatusOK {
		return nil, fmt.Errorf("请求出错,状态码:%d", resp.StatusCode)
	}

	return resp, nil
}

func main() {

	apiKey := "YOUR_API_KEY"
	// 上传
	_, err := upload(apiKey)
	if err != nil {
		fmt.Printf("请求出错: %v\n", err)
	}
}

返回示例

{
    "requestId": "3d81366f-0d6b-4ca5-9b85-f51f347c050f",
    "code": 200,
    "data": true,
    "success": true
}

知识库文件修改

调用示例

curl --location 'https://nlp.aliyuncs.com/v2/api/knowledge_base/detail/update' \
--header 'Expect;' \
--header 'accept: */*' \
--header 'Content-Type: application/json' \
--header 'x-fag-servicename: aca-kb-detail-update' \
--header 'x-fag-appcode: aca' \
--header 'Authorization: Bearer {YOUR_API_KEY}' \
--data '{
            "knowledgeBaseId": "知识库id",
            "name": "现在使用的名称",
            "newName": "新的名称"
        }'
/**
 * API名称:知识库文件修改
 * 环境要求:Java 17及以上
 */
public class Example {
    private static final String URL = "https://nlp.aliyuncs.com/v2/api/knowledge_base/detail/update";
    private static final String API_KEY = "Bearer {YOUR_API_KEY}";

    public static void main(String[] args) throws Exception {
       // 修改
       update();

    }

    private static void update() throws Exception {
        System.out.println("=== 知识库文件名称修改 ===");
        // name 字段填写上方 filename
        String jsonBody = """
       {
           "knowledgeBaseId": "替换knowledgeBaseId",
           "name": "guanyu.txt",
           "newName": "newName.txt"
       }
        """;

        HttpClient client = HttpClient.newHttpClient();

        HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create(URL))
                .headers(
                        "Authorization", API_KEY,
                        // 固定servicename
                        "x-fag-servicename", "aca-kb-detail-update",
                        "x-fag-appcode", "aca",
                        "Content-Type", "application/json")
                .POST(HttpRequest.BodyPublishers.ofString(jsonBody))
                .build();

        // 同步调用
        HttpResponse<String> response = client.send(
                request,
                HttpResponse.BodyHandlers.ofString()
        );

        String responseBody = response.body();
        System.out.println("响应数据: " + responseBody);
    }
}
import requests

URL = "https://nlp.aliyuncs.com/v2/api/knowledge_base/detail/update"

# API名称:知识库文件修改
# 环境要求:python3.10及以上

# 修改
def update(api_key):
    headers = {
        "Content-Type": "application/json",
        "x-fag-servicename": "aca-kb-detail-update",
        "x-fag-appcode": "aca",
        "Authorization": f"Bearer {api_key}"
    }
    # name 填写上方filename
    payload = {
        "knowledgeBaseId": "替换knowledgeBaseId",
        "name": "guanyu.txt",
        "newName": "newName.txt"
    }

    response = requests.post(URL, json=payload, headers=headers)
    # 逐行打印原始响应内容
    for line in response.iter_lines():
        if line:
            print(line.decode('utf-8'))
    # 检查响应状态,如有错误则抛出异常
    response.raise_for_status()
    return response

if __name__ == "__main__":
    api_key = "YOUR_API_KEY"
    model_name = "xingchen-plus-latest"
    try:
        # 修改知识库文件
        response = update(api_key)
    except requests.HTTPError as e:
        print(f"请求出错: {e}")
package main

import (
	"bytes"
	"encoding/json"
	"fmt"
	"io"
	"net/http"
)

// API名称:知识库文件修改
// 环境要求:go 1.20及以上

const URL = "https://nlp.aliyuncs.com/v2/api/knowledge_base/detail/update"

// 修改知识库文件
func update(apiKey string) (*http.Response, error) {
	// name 填写上方filename
	payload := map[string]interface{}{
		"knowledgeBaseId": "替换knowledgeBaseId",
		"name":            "guanyu.txt",
		"newName":         "guanyu1.txt",
	}

	payloadBytes, err := json.Marshal(payload)
	if err != nil {
		return nil, err
	}

	req, err := http.NewRequest("POST", URL, bytes.NewBuffer(payloadBytes))
	if err != nil {
		return nil, err
	}

	req.Header.Set("Content-Type", "application/json")
	req.Header.Set("x-fag-servicename", "aca-kb-detail-update")
	req.Header.Set("x-fag-appcode", "aca")
	req.Header.Set("Authorization", "Bearer "+apiKey)
	client := &http.Client{}
	resp, err := client.Do(req)
	if err != nil {
		return nil, err
	}

	// 逐行打印原始响应内容
	defer resp.Body.Close()
	body, _ := io.ReadAll(resp.Body)
	fmt.Println(string(body))

	if resp.StatusCode != http.StatusOK {
		return nil, fmt.Errorf("请求出错,状态码:%d", resp.StatusCode)
	}

	return resp, nil
}

func main() {

	apiKey := "YOUR_API_KEY"
	
	// 修改知识库文件
	_, err := update(apiKey)
	if err != nil {
		fmt.Printf("请求出错: %v\n", err)
	}
}

返回示例

{
    "requestId": "3d81366f-0d6b-4ca5-9b85-f51f347c050f",
    "code": 200,
    "data": true,
    "success": true
}

知识库文件查询

调用示例

curl --location 'https://nlp.aliyuncs.com/v2/api/knowledge_base/detail/search' \
--header 'Expect;' \
--header 'accept: */*' \
--header 'Content-Type: application/json' \
--header 'x-fag-servicename: aca-kb-detail-search' \
--header 'x-fag-appcode: aca' \
--header 'Authorization: Bearer {YOUR_API_KEY}' \
--data '{
            "knowledgeBaseId": "知识库id",
            "pageNum": 1,
            "pageSize": 10
        }'
/**
 * API名称:知识库文件查询
 * 环境要求:Java 17及以上
 */
public class Example {
    private static final String URL = "https://nlp.aliyuncs.com/v2/api/knowledge_base/detail/search";
    private static final String API_KEY = "Bearer {YOUR_API_KEY}";

    public static void main(String[] args) throws Exception {
        // 查询
        search();
    }

    private static void search() throws Exception {
        System.out.println("=== 知识库文件查询 ===");
        String jsonBody = """
        {
            "knowledgeBaseId": "替换knowledgeBaseId",
            "pageNum": 1,
            "pageSize": 10
        }
        """;

        HttpClient client = HttpClient.newHttpClient();

        HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create(URL))
                .headers(
                        "Authorization", API_KEY,
                        // 固定servicename
                        "x-fag-servicename", "aca-kb-detail-search",
                        "x-fag-appcode", "aca",
                        "Content-Type", "application/json")
                .POST(HttpRequest.BodyPublishers.ofString(jsonBody))
                .build();

        // 同步调用
        HttpResponse<String> response = client.send(
                request,
                HttpResponse.BodyHandlers.ofString()
        );

        String responseBody = response.body();
        System.out.println("响应数据: " + responseBody);
    }
}
import requests

URL = "https://nlp.aliyuncs.com/v2/api/knowledge_base/detail/search"

# API名称:知识库文件查询
# 环境要求:python3.10及以上

# 查询
def search(api_key):
    headers = {
        "Content-Type": "application/json",
        "x-fag-servicename": "aca-kb-detail-search",
        "x-fag-appcode": "aca",
        "Authorization": f"Bearer {api_key}"
    }

    payload = {
        "knowledgeBaseId": "替换knowledgeBaseId",
        "pageNum": 1,
        "pageSize": 10
    }

    response = requests.post(URL, json=payload, headers=headers)
    # 逐行打印原始响应内容
    for line in response.iter_lines():
        if line:
            print(line.decode('utf-8'))
    # 检查响应状态,如有错误则抛出异常
    response.raise_for_status()
    return response

if __name__ == "__main__":
    api_key = "YOUR_API_KEY"
    model_name = "xingchen-plus-latest"
    try:
        # 查询知识库文件
        response = search(api_key)
    except requests.HTTPError as e:
        print(f"请求出错: {e}")
package main

import (
	"bytes"
	"encoding/json"
	"fmt"
	"io"
	"net/http"
)

// API名称:知识库文件查询
// 环境要求:go 1.20及以上

const URL = "https://nlp.aliyuncs.com/v2/api/knowledge_base/detail/search"

// 查询知识库文件
func search(apiKey string) (*http.Response, error) {
	payload := map[string]interface{}{
		"knowledgeBaseId": "替换knowledgeBaseId",
		"pageNum":         1,
		"pageSize":        10,
	}

	payloadBytes, err := json.Marshal(payload)
	if err != nil {
		return nil, err
	}

	req, err := http.NewRequest("POST", URL, bytes.NewBuffer(payloadBytes))
	if err != nil {
		return nil, err
	}

	req.Header.Set("Content-Type", "application/json")
	req.Header.Set("x-fag-servicename", "aca-kb-detail-search")
	req.Header.Set("x-fag-appcode", "aca")
	req.Header.Set("Authorization", "Bearer "+apiKey)
	client := &http.Client{}
	resp, err := client.Do(req)
	if err != nil {
		return nil, err
	}

	// 逐行打印原始响应内容
	defer resp.Body.Close()
	body, _ := io.ReadAll(resp.Body)
	fmt.Println(string(body))

	if resp.StatusCode != http.StatusOK {
		return nil, fmt.Errorf("请求出错,状态码:%d", resp.StatusCode)
	}

	return resp, nil
}

func main() {

	apiKey := "YOUR_API_KEY"
	//查询知识库文件
	_, err := search(apiKey)
	if err != nil {
		fmt.Printf("请求出错: %v\n", err)
	}
}

返回示例

{
    "requestId": "d39b2708-527a-45b7-9343-69ee2178b6cb",
    "code": 200,
    "data": {
        "list": [
            {
                "id": 34405,
                "gmtCreate": 1755658488000,
                "gmtModified": 1755658531000,
                "knowledgeBaseId": "123b9e9ec4af4ec5bc2f9b8973417435",
                "name": "guanyu3.txt",
                "type": "text",
                "status": "success",
                "fileInfo": {
                    "fileSavePath": "kb/oss-5ed33fdb8d9d4d1489e44efb5c41312b-57e41178f147c2a44a48b3cf7547f259.txt",
                    "filename": "guanyu3.txt",
                    "fileUrl": "//character-ai.oss-cn-hangzhou.aliyuncs.com/kb/oss-5ed33fdb8d9d4d1489e44efb5c41312b-57e41178f147c2a44a48b3cf7547f259.txt?Expires=1787365690&OSSAccessKeyId=STS.NXoeuqCeWQmA4EtJBsw81aCHu&Signature=CS%2Bf3fg2iyVIlcH1vp4hmanhCxM%3D&security-token=CAISxgJ1q6Ft5B2yfSjIr5vaLs%2FFrrp25q%2BqNmPFrkIme7cdjobjlzz2IHhMe3lgA%2BgctPQ%2Bm29W7Pkflrp6SJtIXleCZtF94oxN9h2gb4fb4yhNH1Hh08%2FLI3OaLjKm9u2wCryLYbGwU%2FOpbE%2B%2B5U0X6LDmdDKkckW4OJmS8%2FBOZcgWWQ%2FKBlgvRq0hRG1YpdQdKGHaONu0LxfumRCwNkdzvRdmgm4NgsbWgO%2Fks0OO0AKqmrFE%2Btirecj1NPMBZskvD42Hu8VtbbfE3SJq7BxHybx7lqQs%2B02c5onCUwkLu0%2FcY7uLrYM1c1JjB6ExEutPqP%2Fhme2FZUhRDl0SofwkHZa2M0y3LOjIqKNPmNJwucXerM7kIYLL%2FNq5JKTbpcLYER3QzOuDsjfA%2B5Kd%2BNHtq8gDx2J%2BkruwAXhIM0Pui8k8N1kfkz2AlRqAAQ0r4%2FRXMmZ0RCrN8sq1Bwo3pekrHYfEZMO5ty9tNpcDP6fiznYiIoJ3vUE1FdZVjWaVapUhkscYVnrUGDILLF4tCwBXuH6Mnn5IQgf4TQXdWC9YfBvu8xwSimIehUePNDSVKIAc6GsRoziietNmQPWT4BD9Hu9WY48s5HsFmlD9IAA%3D"
                }
            }
        ],
        "page": 1,
        "pageSize": 10,
        "total": 2
    },
    "success": true
}

知识库文件删除

调用示例

curl --location 'https://nlp.aliyuncs.com/v2/api/knowledge_base/detail/delete' \
--header 'Expect;' \
--header 'accept: */*' \
--header 'Content-Type: application/json' \
--header 'x-fag-servicename: aca-kb-detail-delete' \
--header 'x-fag-appcode: aca' \
--header 'Authorization: Bearer {YOUR_API_KEY}' \
--data '{
            "knowledgeBaseId": "知识库id",
            "name": "知识库详情名称"
        }'
/**
 * API名称:知识库文件删除等
 * 环境要求:Java 17及以上
 */
public class Example {
    private static final String URL = "https://nlp.aliyuncs.com/v2/api/knowledge_base/detail/delete";
    private static final String API_KEY = "Bearer {YOUR_API_KEY}";

    public static void main(String[] args) throws Exception {
       // 删除
       delete();
    }

    private static void delete() throws Exception {
        System.out.println("=== 知识库文件删除 ===");
        String jsonBody = """
            {
                "knowledgeBaseId": "替换knowledgeBaseId",
                "name": "newName.txt"
            }
        """;

        HttpClient client = HttpClient.newHttpClient();

        HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create(URL))
                .headers(
                        "Authorization", API_KEY,
                        // 固定servicename
                        "x-fag-servicename", "aca-kb-detail-delete",
                        "x-fag-appcode", "aca",
                        "Content-Type", "application/json")
                .POST(HttpRequest.BodyPublishers.ofString(jsonBody))
                .build();

        // 同步调用
        HttpResponse<String> response = client.send(
                request,
                HttpResponse.BodyHandlers.ofString()
        );

        String responseBody = response.body();
        System.out.println("响应数据: " + responseBody);
    }
}
import requests

URL = "https://nlp.aliyuncs.com/v2/api/knowledge_base/detail/delete"

# API名称:知识库文件删除
# 环境要求:python3.10及以上

# 删除
def delete(api_key):
    headers = {
        "Content-Type": "application/json",
        "x-fag-servicename": "aca-kb-detail-delete",
        "x-fag-appcode": "aca",
        "Authorization": f"Bearer {api_key}"
    }

    payload = {
        "knowledgeBaseId": "替换knowledgeBaseId",
        "name": "guanyu.txt"
    }

    response = requests.post(URL, json=payload, headers=headers)
    # 逐行打印原始响应内容
    for line in response.iter_lines():
        if line:
            print(line.decode('utf-8'))
    # 检查响应状态,如有错误则抛出异常
    response.raise_for_status()
    return response

if __name__ == "__main__":
    api_key = "YOUR_API_KEY"
    model_name = "xingchen-plus-latest"
    try:
        # 删除
        response = delete(api_key)
    except requests.HTTPError as e:
        print(f"请求出错: {e}")
package main

import (
	"bytes"
	"encoding/json"
	"fmt"
	"io"
	"net/http"
)

// API名称:知识库文件删除
// 环境要求:go 1.20及以上

const URL = "https://nlp.aliyuncs.com/v2/api/knowledge_base/detail/delete"

// 删除
func delete(apiKey string) (*http.Response, error) {
	payload := map[string]interface{}{
		"knowledgeBaseId": "替换knowledgeBaseId",
		"name":            "guanyu.txt",
	}

	payloadBytes, err := json.Marshal(payload)
	if err != nil {
		return nil, err
	}

	req, err := http.NewRequest("POST", URL, bytes.NewBuffer(payloadBytes))
	if err != nil {
		return nil, err
	}

	req.Header.Set("Content-Type", "application/json")
	req.Header.Set("x-fag-servicename", "aca-kb-detail-delete")
	req.Header.Set("x-fag-appcode", "aca")
	req.Header.Set("Authorization", "Bearer "+apiKey)
	client := &http.Client{}
	resp, err := client.Do(req)
	if err != nil {
		return nil, err
	}

	// 逐行打印原始响应内容
	defer resp.Body.Close()
	body, _ := io.ReadAll(resp.Body)
	fmt.Println(string(body))

	if resp.StatusCode != http.StatusOK {
		return nil, fmt.Errorf("请求出错,状态码:%d", resp.StatusCode)
	}

	return resp, nil
}

func main() {

	apiKey := "YOUR_API_KEY"

	// 删除
	_, err := delete(apiKey)
	if err != nil {
		fmt.Printf("请求出错: %v\n", err)
	}
}

返回示例

{
    "requestId": "3d81366f-0d6b-4ca5-9b85-f51f347c050f",
    "code": 200,
    "data": true,
    "success": true
}