# 火山引擎接口列表
|分类|接口名称|状态|描述|
|--|--|--|--|
|知识库|create|正常|用于创建知识库相关操作，具体功能可参考对应文档|
|知识库|update|正常|对知识库进行更新操作，更新内容和方式需参照相关说明|
|知识库|info|正常|获取知识库的相关信息，如基本属性、配置等|
|知识库|list|正常|列出知识库的相关列表，可能包括所有知识库或符合特定条件的知识库|
|知识库|delete|正常|删除指定的知识库|
|知识库|search|即将下线|用于在知识库中进行检索，即将停止使用，建议尽快迁移相关功能|
|知识库|search_and_generate|即将下线|在知识库检索基础上可能还具备生成内容的功能，即将下线，需及时调整|
|知识库|search_knowledge|新|新推出的在知识库进行检索的接口，可能具有更优化的功能或特性|
|知识库|chat_completions|新|用于实现知识库多轮检索问答等聊天交互功能的接口，是新上线的功能接口|
|文档|add|正常|用于添加文档到相应的知识库或存储系统中|
|文档|info|正常|获取文档的详细信息，如文档内容、元数据等|
|文档|list|正常|列出文档相关的列表，比如所有文档或特定类型、特定用户的文档|
|文档|update_meta|正常|更新文档的元数据，如文档的标题、标签等信息|
|文档|delete|正常|删除指定的文档|
|切片|list|正常|列出切片相关的列表，可能是文档切片的信息列表|
|切片|update|正常|对切片进行更新操作，比如修改切片的内容、属性等|
|切片|info|正常|获取切片的详细信息，包括切片内容、位置等|
|切片|add|正常|添加切片，可能是将新生成的切片添加到系统中|
|切片|delete|正常|删除指定的切片|
|重排|Rerank重排|正常|进行重排操作，可能是对检索结果等进行重新排序，以优化展示或筛选效果| 

# 示例代码

```python
import json
import requests
from volcengine.auth.SignerV4 import SignerV4
from volcengine.base.Request import Request
from volcengine.Credentials import Credentials

#签名生成逻辑
def prepare_request(method, path, params=None, data=None, doseq=0):
    #创建request
    if params:
        for key in params:
            if (
                    isinstance(params[key], int)
                    or isinstance(params[key], float)
                    or isinstance(params[key], bool)
            ):
                params[key] = str(params[key])
            elif isinstance(params[key], list):
                if not doseq:
                    params[key] = ",".join(params[key])
    r = Request()
    r.set_shema("http")
    r.set_method(method)
    r.set_connection_timeout(10)
    r.set_socket_timeout(10)
    mheaders = {
        "Accept": "application/json",
        "Content-Type": "application/json",
        "Host": g_knowledge_base_domain,
        "V-Account-Id": account_id,
    }
    r.set_headers(mheaders)
    if params:
        r.set_query(params)
    r.set_host(g_knowledge_base_domain)
    r.set_path(path)
    if data is not None:
        r.set_body(json.dumps(data))
    # 生成签名
    credentials = Credentials(ak, sk, "air", "cn-north-1")
    SignerV4.sign(r, credentials)
    return r

#创建知识库逻辑
def create():
    #创建知识库的请求方式
    method = "POST"
    #创建知识库的请求路径
    path = "/api/knowledge/collection/create"
    #创建知识库所需要的一些参数
    request_params = {
        "name": "lzm_test2",
        "data_type": "unstructured_data",
        "preprocessing": {
            "chunking_strategy":"custom_balance",
            "multi_modal":["image_ocr"]
        },
        "index": {
            "cpu_quota": 1,
            "embedding_model": "doubao-embedding-and-m3",
            "embedding_dimension": 2048,
            "quant": "int8",
            "index_type": "hnsw_hybrid"
        },
    }
    info_req = prepare_request(method=method, path=path, data=request_params)
    rsp = requests.request(
        method=info_req.method,
        url="https://{}{}".format(g_knowledge_base_domain, info_req.path),
        headers=info_req.headers,
        data=info_req.body
    )
    print(rsp.text)

if __name__ == "__main__":
    ak = '刚才申请到的ak'
    sk = '刚才申请到的sk'
    g_knowledge_base_domain = "api-knowledgebase.mlp.cn-beijing.volces.com"
    #调用创建知识库的函数
    create()
```