@re-ai/volc-knowledge
Version:
火山引擎知识库接口接入SDK
108 lines (103 loc) • 4.51 kB
Markdown
# 火山引擎接口列表
|分类|接口名称|状态|描述|
|--|--|--|--|
|知识库|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()
```