Assistant SDK API说明
Assistant SDK
的基础接口 与 Assistant API
的接口与组织方式保持一致,且一一对应,更详细的接口说明请参考 Assistant API
appbuilder.assistant.assistants
appbuilder.assistant.assistants.create
功能:创建assistant实例
1def create(self,
2 name: str,
3 description: str,
4 model: Optional[str] = "ERNIE-4.0-8K",
5 response_format: Optional[str] = 'text',
6 instructions: Optional[str] = "",
7 thought_instructions: Optional[str] = "",
8 chat_instructions: Optional[str] = "",
9 tools: Optional[list[assistant_type.AssistantTool]] = [],
10 file_ids: Optional[list[str]] = [],
11 metadata: Optional[dict] = {},
12 ) -> assistant_type.AssistantCreateResponse:
13 """
14 创建助手实例
15
16 Args:
17 name (str): 助手名称
18 description (str): 助手描述
19 model (Optional[str], optional): 模型名称. Defaults to "ERNIE-4.0-8K".
20 response_format (Optional[str], optional): 响应格式. Defaults to 'text'.
21 instructions (Optional[str], optional): 指令. Defaults to "".
22 thought_instructions (Optional[str], optional): 思考指令. Defaults to "".
23 chat_instructions (Optional[str], optional): 聊天指令. Defaults to "".
24 tools (Optional[list[assistant_type.AssistantTool]], optional): 工具列表. Defaults to [].
25 file_ids (Optional[list[str]], optional): 文件ID列表. Defaults to [].
26 metadata (Optional[dict], optional): 元数据. Defaults to {}.
27
28 Returns:
29 assistant_type.AssistantCreateResponse: 助手创建响应
30
31 """
- appbuilder.assistant.assistants.create 对应的 Assistant API 链接
- appbuilder.assistant.assistants.create 的请求参数
1class AssistantCreateRequest(BaseModel):
2 model: str = Field(default="ERNIE-4.0-8K") # 使用的模型
3 name: str = Field(default="", min_length=1, max_length=128, pattern="^[\u4e00-\u9fa50-9a-zA-Z_-]+$") # 助理名称
4 description: str = Field(default="", max_length=512) # 助理描述
5 response_format: ResponseFormat = Field(default=ResponseFormat.TEXT) # 响应格式
6 instructions: str = Field(default="你是百度制作的AI助手", max_length=4096) # 助理的通用指令
7 thought_instructions: str = Field(default="", max_length=4096) # 助理的思维指令
8 chat_instructions: str = Field(default="", max_length=4096) # 助理的聊天指令
9 tools: list[AssistantTool] = Field(default=[], max_length=10) # 助理使用的工具列表
10 file_ids: list[str] = Field(default=[], max_length=10) # 关联文件的ID列表
11 metadata: dict = Field(default={}, max_length=16) # 元数据
- appbuilder.assistant.assistants.create 的响应参数
1class AssistantCreateResponse(BaseModel):
2 id: Optional[str] = "" # 助理ID
3 object: Optional[str] = "" # 助理对象标识
4 name: Optional[str] = "" # 助理名称
5 description: Optional[str] = "" # 助理描述
6 instructions: Optional[str] # 助理的通用指令
7 tools: Optional[list[AssistantTool]] = Field(default=[]) # 助理使用的工具列表
8 created_at: Optional[int] = 0 # 助理创建时间戳
9 thought_instructions: Optional[str] = "" # 助理的思维指令
10 chat_instructions: Optional[str] = "" # 助理的聊天指令
11 response_format: Optional[ResponseFormat] = Field(default=ResponseFormat.TEXT) # 响应格式
12 file_ids: Optional[list[str]] = Field(default=[]) # 关联文件的ID列表
13 metadata: Optional[dict] = Field(default={}, max_length=16) # 元数据
appbuilder.assistant.assistants.update
功能:根据assistant_id修改一个已创建的Assistant
1def update(self,
2 assistant_id: str,
3 model: Optional[str],
4 name: Optional[str],
5 description: Optional[str],
6 instructions: Optional[str] = "",
7 tools: Optional[list[assistant_type.AssistantTool]] = [],
8 thought_instructions: Optional[str] = "",
9 chat_instructions: Optional[str] = "",
10 response_format: Optional[str] = "text",
11 file_ids: Optional[list[str]] = [],
12 metadata: Optional[dict] = {}
13 ) -> assistant_type.AssistantUpdateResponse:
14 """
15 根据assistant_id修改一个已创建的Assistant
16
17 Args:
18 assistant_id (str): 助手ID。
19 model (Optional[str]): 助手模型。
20 name (Optional[str]): 助手名称。
21 description (Optional[str]): 助手描述。
22 response_format (Optional[str], optional): 响应格式。默认为None。
23 instructions (Optional[str], optional): 助手指令。默认为None。
24 thought_instructions (Optional[str], optional): 思考指令。默认为None。
25 chat_instructions (Optional[str], optional): 聊天指令。默认为None。
26 tools (Optional[list[assistant_type.AssistantTool]], optional): 助手工具列表。默认为空列表。
27 file_ids (Optional[list[str]], optional): 文件ID列表。默认为空列表。
28 metadata (Optional[dict], optional): 助手元数据。默认为空字典。
29
30 Returns:
31 assistant_type.AssistantUpdateResponse: 助手更新响应。
32
33 """
- appbuilder.assistant.assistants.update 对应的 Assistant API 链接
- appbuilder.assistant.assistants.update 的请求参数
1class AssistantUpdateRequest(BaseModel):
2 assistant_id: Optional[str] = "" # 助理ID
3 model: str = Field(default="ERNIE-4.0-8K") # 使用的模型
4 name: str = Field(default="", min_length=1, max_length=128, pattern="^[\u4e00-\u9fa50-9a-zA-Z_-]+$") # 助理名称
5 description: str = Field(default="", max_length=512) # 助理描述
6 response_format: ResponseFormat = Field(default=ResponseFormat.TEXT) # 响应格式
7 instructions: str = Field(default="你是百度制作的AI助手", max_length=4096) # 助理的通用指令
8 thought_instructions: str = Field(default="", max_length=4096) # 助理的思维指令
9 chat_instructions: str = Field(default="", max_length=4096) # 助理的聊天指令
10 tools: list[AssistantTool] = Field(default=[], max_length=10) # 助理使用的工具列表
11 file_ids: list[str] = Field(default=[], max_length=10) # 关联文件的ID列表
12 metadata: dict = Field(default={}, max_length=16) # 元数据
- appbuilder.assistant.assistants.update 的响应参数
1class AssistantUpdateResponse(BaseModel):
2 id: Optional[str] = "" # 助理ID
3 model: Optional[str] = "" # 助理对象标识
4 name: Optional[str] = "" # 助理名称
5 description: Optional[str] = "" # 助理描述
6 response_format: Optional[ResponseFormat] = Field(default=ResponseFormat.TEXT) # 响应格式
7 instructions: Optional[str] # 助理的通用指令
8 created_at: Optional[int] = 0 # 助理创建时间戳
9 thought_instructions: Optional[str] = "" # 助理的思维指令
10 chat_instructions: Optional[str] = "" # 助理的聊天指令
11 tools: Optional[list[AssistantTool]] = Field(default=[]) # 助理使用的工具列表
12 file_ids: Optional[list[str]] = Field(default=[]) # 关联文件的ID列表
13 metadata: Optional[dict] = Field(default={}, max_length=16) # 元数据
appbuilder.assistant.assistants.list
功能:查询当前用户已创建的assistant列表
1def list(self,
2 limit: Optional[int] = 20,
3 order: Optional[str] = "desc",
4 after: Optional[str] = "",
5 before: Optional[str] = "",
6 ) -> assistant_type.AssistantListResponse:
7 """
8 查询当前用户已创建的assistant列表
9
10 Args:
11 limit (Optional[int], optional): 返回助手列表的最大数量,默认为20。
12 order (Optional[str], optional): 返回助手列表的排序方式,可选值为"asc"或"desc",默认为"desc"。
13 after (Optional[str], optional): 返回助手列表中id在指定id之后的助手,默认为空字符串。
14 before (Optional[str], optional): 返回助手列表中id在指定id之前的助手,默认为空字符串。
15
16 Returns:
17 assistant_type.AssistantListResponse: 助手列表响应体。
18
19 """
- appbuilder.assistant.assistants.list 对应的 Assistant API 链接
- appbuilder.assistant.assistants.list 的请求参数
1class AssistantListRequest(BaseModel):
2 limit: Optional[int] = Field(default=20) # 列举结果数量上限
3 order: Optional[AssistantListRole] = Field(default= AssistantListRole.DESC) # 排序字段
4 after: Optional[str] = Field(default="") # 查询指定assistant_id之后创建的Assistant
5 before: Optional[str] = Field(default="") # 查询指定assistant_id之前创建的Assistant
- appbuilder.assistant.assistants.list 的响应参数
1class AssistantListResponse(BaseModel):
2 object: str = "list" # 结构类型,返回值固定为 list
3 data: Optional[list[AssistantCreateResponse]] = Field(default=[]) # Assistant对象列表
4 first_id: Optional[str] = "" # 返回的列表中第一条assistant的id
5 last_id: Optional[str] = "" # 返回的列表中最后一条assistant的id
6 has_more: bool = False # 是否还有更多的数据
appbuilder.assistant.assistants.query
功能:根据assistant_id查询Assistant信息
1def query(self,
2 assistant_id: Optional[str]) -> assistant_type.AssistantQueryResponse:
3 """
4 根据assistant_id查询Assistant信息
5
6 Args:
7 assistant_id (Optional[str]): 助手ID
8
9 Returns:
10 assistant_type.AssistantQueryResponse: 助手查询响应结果
11
12 Raises:
13 HTTPError: 请求失败,抛出HTTPError异常
14 """
- appbuilder.assistant.assistants.query 对应的 Assistant API 链接
- appbuilder.assistant.assistants.query 的请求参数
1class AssistantQueryRequest(BaseModel):
2 assistant_id: Optional[str] = "" # 助理ID
- appbuilder.assistant.assistants.query 的响应参数
1class AssistantQueryResponse(BaseModel):
2 id: Optional[str] = "" # 助理ID
3 object: Optional[str] = "" # 助理对象标识
4 name: Optional[str] = "" # 助理名称
5 description: Optional[str] = "" # 助理描述
6 instructions: Optional[str] # 助理的通用指令
7 tools: Optional[list[AssistantTool]] = Field(default=[]) # 助理使用的工具列表
8 created_at: Optional[int] = 0 # 助理创建时间戳
9 thought_instructions: Optional[str] = "" # 助理的思维指令
10 chat_instructions: Optional[str] = "" # 助理的聊天指令
11 response_format: Optional[ResponseFormat] = Field(default=ResponseFormat.TEXT) # 响应格式
12 file_ids: Optional[list[str]] = Field(default=[]) # 关联文件的ID列表
13 metadata: Optional[dict] = Field(default={}, max_length=16) # 元数据
appbuilder.assistant.assistants.delete
功能:根据assistant_id删除指定Assitant
1def delete(self,
2 assistant_id: Optional[str]) -> assistant_type.AssistantDeleteResponse:
3 """
4 根据assistant_id删除指定Assitant
5
6 Args:
7 assistant_id (Optional[str]): 待删除的助手实例ID。
8
9 Returns:
10 assistant_type.AssistantDeleteResponse: 删除助手实例后的响应结果。
11
12 Raises:
13 HttpRequestError: 发送HTTP请求时发生错误。
14
15 """
- appbuilder.assistant.assistants.delete 对应的 Assistant API 链接
- appbuilder.assistant.assistants.delete 的请求参数
1class AssistantDeleteRequest(BaseModel):
2 assistant_id: Optional[str] = "" # 助理ID
- appbuilder.assistant.assistants.delete 的响应参数
1class AssistantDeleteResponse(BaseModel):
2 id: Optional[str] = "" # 助理ID
3 object: Optional[str] = "" # 助理对象标识
4 deleted: bool = False # 删除状态
appbuilder.assistant.assistants.mount_files
功能:指定file_id和assistant_id,挂载File到对应的Assistant
1def mount_files(self,
2 assistant_id: Optional[str],
3 file_id: Optional[str]
4 ) -> assistant_type.AssistantFilesResponse:
5 """
6 指定file_id和assistant_id,挂载File到对应的Assistant
7
8 Args:
9 assistant_id (Optional[str]): 助理ID。
10 file_id (Optional[str]): 文件ID。
11
12 Returns:
13 assistant_type.AssistantFilesResponse: 助理文件列表响应对象。
14
15 """
- appbuilder.assistant.assistants.mount_files 对应的 Assistant API 链接
- appbuilder.assistant.assistants.mount_files 的请求参数
1class AssistantFilesRequest(BaseModel):
2 assistant_id: Optional[str] = "" # 助理ID
3 file_id: Optional[str] = "" # File对象的id
- appbuilder.assistant.assistants.mount_files 的响应参数
1class AssistantFilesResponse(BaseModel):
2 id: Optional[str] = "" # File对象的id,值等于入参
3 object: Optional[str] = "" # 助理对象标识
4 created_at: Optional[int] = 0 # 助理创建时间戳
5 assistant_id: Optional[str] = "" # Assistant对象的id,值等于入参
appbuilder.assistant.assistants.mounted_files_list
功能:查询Assistant挂载的File列表
1def mounted_files_list(self,
2 assistant_id: Optional[str],
3 limit: Optional[int] = 20,
4 order: Optional[str] = 'desc' ,
5 after: Optional[str] = "",
6 before: Optional[str] = "") -> assistant_type.AssistantMountedFilesListResponse:
7 """
8 查询Assistant挂载的File列表
9
10 Args:
11 assistant_id (Optional[str]): 助手ID,为空时获取当前登录用户的助手文件列表。
12 limit (Optional[int], optional): 每页最多显示多少个文件。默认为20。
13 order (Optional[AssistantListRole], optional): 文件列表排序方式。可选值为 'asc' 或 'desc'。默认为 'desc'。
14 after (Optional[str], optional): 返回文件ID大于该值的文件列表。默认为空字符串。
15 before (Optional[str], optional): 返回文件ID小于该值的文件列表。默认为空字符串。
16
17 Returns:
18 assistant_type.AssistantFilesListResponse: 包含文件列表信息的响应对象。
19
20 """
- appbuilder.assistant.assistants.mounted_files_list 对应的 Assistant API 链接
- appbuilder.assistant.assistants.mounted_files_list 的请求参数
1class AssistantFilesDeleteRequest(BaseModel):
2 assistant_id: Optional[str] = "" # 助理ID
3 file_id: Optional[str] = "" # File对象的id
- appbuilder.assistant.assistants.mounted_files_list 的响应参数
1class AssistantFilesContentResponse(BaseModel):
2 content_type:Optional[str] = "" # 文件类型
3 content :Optional[bytes] =b"" # 二进制流数据
appbuilder.assistant.assistants.unmount_files
功能:指定assistant_id和file_id,解绑Assistant中对应File的关联
1def unmount_files(self,
2 assistant_id: Optional[str],
3 file_id: Optional[str]
4 ) -> assistant_type.AssistantFilesDeleteResponse:
5 """
6 指定assistant_id和file_id,解绑Assistant中对应File的关联
7
8 Args:
9 assistant_id (Optional[str]): 助理ID。
10 file_id (Optional[str]): 文件ID。
11 Returns:
12 assistant_type.AssistantFilesDeleteResponse: 响应对象。
13 """
- appbuilder.assistant.assistants.unmount_files 对应的 Assistant API 链接
- appbuilder.assistant.assistants.unmount_files 的请求参数
1class AssistantFilesDeleteRequest(BaseModel):
2 assistant_id: Optional[str] = "" # 助理ID
3 file_id: Optional[str] = "" # File对象的id
- appbuilder.assistant.assistants.unmount_files 的响应参数
1class AssistantFilesDeleteResponse(BaseModel):
2 id: str = "" # 文件ID
3 object: str = "" # 文件对象标识
4 deleted: bool = False # 是否删除成功
appbuilder.assistant.assistants.files
appbuilder.assistant.assistants.files.create
功能:上传并创建一个文件实例,该文件与assistant和thread解耦,可以单独使用。
1def create(self, file_path: str, purpose: str = "assistant") -> assistant_type.AssistantFilesCreateResponse:
2 """
3 上传文件到助理存储中。
4
5 Args:
6 file_path (str): 要上传的文件路径。
7 purpose (str, optional): 上传文件的用途。默认为 "assistant"。
8
9 Returns:
10 assistant_type.AssistantFilesCreateResponse: 上传文件后返回的响应对象。
11
12 Raises:
13 ValueError: 如果指定的文件路径不存在,则会引发此异常。
14 """
- appbuilder.assistant.assistants.files.create 对应的 Assistant API 链接
- appbuilder.assistant.assistants.files.create 的请求参数
1file_path (str): 要上传的文件路径。
2purpose (str, optional): 上传文件的用途。默认为 "assistant"。
- appbuilder.assistant.assistants.files.create 的响应参数
1class AssistantFilesCreateResponse(BaseModel):
2 id: str = "" # 文件ID
3 bytes: int = 0 # 文件大小(字节)
4 object: str = "" # 文件对象标识
5 purpose: str = "" # 文件用途
6 create_at: int = 0 # 文件创建时间戳
7 filename: str = "" # 文件名
8 classification_id: str = "" # 文件分类ID
appbuilder.assistant.assistants.files.list
功能:列出存储中的文件列表
1def list(self) -> assistant_type.AssistantFilesListResponse:
2 """
3 列出存储中的文件列表
4
5 Args:
6 无
7
8 Returns:
9 assistant_type.AssistantFilesListResponse: 文件列表的响应对象,包含以下属性:
10
11 Raises:
12 assistant_type.AssistantError: 请求发生错误时抛出,具体错误信息可通过 `error_msg` 属性获取
13 """
- appbuilder.assistant.assistants.files.list 对应的 Assistant API 链接
- appbuilder.assistant.assistants.files.list 的响应参数
1class AssistantFilesListResponse(BaseModel):
2 object :str = "list"
3 data: list[AssistantFilesListData] = []
注:AssistantFilesListData类即为AssistantFilesQueryResponse类
appbuilder.assistant.assistants.files.query
功能:根据文件ID查询文件信息
1def query(self,
2 file_id: str,
3 ) -> assistant_type.AssistantFilesQueryResponse:
4 """
5 根据文件ID查询文件信息
6
7 Args:
8 file_id (str): 文件ID
9
10 Returns:
11 assistant_type.AssistantFilesQueryResponse: 文件查询响应对象
12
13 Raises:
14 TypeError: 如果file_id不是str类型
15 ValueError: 如果file_id不存在
16 """
- appbuilder.assistant.assistants.files.query 对应的 Assistant API 链接
- appbuilder.assistant.assistants.files.query 的请求参数
1file_id (str): 文件ID
- appbuilder.assistant.assistants.files.query 的响应参数
1class AssistantFilesQueryResponse(BaseModel):
2 id: str = "" # 文件ID
3 bytes: int = 0 # 文件大小(字节)
4 object: str = "" # 文件对象标识
5 purpose: str = "" # 文件用途
6 censored :AuditStatus = Field() # 审核状态
7 create_at: int = 0 # 文件创建时间戳
8 filename: str = "" # 文件名
9 classification_id: str = "" # 文件分类ID
10 file_type: str = "" # 文件类型
appbuilder.assistant.assistants.files.delete
功能:根据file_id删除一个已上传的文件
1def delete(self,
2 file_id: str,
3 ) -> assistant_type.AssistantFilesDeleteResponse:
4"""
5删除文件
6Args:
7 file_id (str): 文件ID
8Returns:
9 assistant_type.AssistantFilesDeleteResponse: 删除文件后的响应对象。
10Raises:
11 无
12"""
- appbuilder.assistant.assistants.files.delete 对应的 Assistant API 链接
- appbuilder.assistant.assistants.files.delete 的请求参数
1file_id (str): 文件ID
- appbuilder.assistant.assistants.files.delete 的响应参数
1class AssistantFilesDeleteResponse(BaseModel):
2 id: str = "" # 文件ID
3 object: str = "" # 文件对象标识
4 deleted: bool = False # 是否删除成功
appbuilder.assistant.assistants.files.download
功能:下载文件
1def download(self,
2 file_id:str,
3 file_path:str="", # 要求若文件路径不为空,需要以/结尾,默认下载到当前文件夹
4 timeout:Optional[int]=None,
5 ):
6 """
7 下载文件
8
9 Args:
10 file_id (str): 文件ID
11 file_path (str, optional): 文件保存路径,默认为空字符串。如果未指定,则使用文件名的默认值。要求若文件路径不为空,需要以/结尾。
12 timeout (Optional[int], optional): 请求超时时间,单位秒。如果未指定,则使用默认超时时间。
13
14 Returns:
15 None
16
17 Raises:
18 TypeError: 当file_path或file_id类型不为str时引发此异常。
19 ValueError: 当file_id为空或None时,或file_path不是文件目录时引发此异常。
20 FileNotFoundError: 当指定的文件路径或文件不存在时引发此异常。
21 OSError: 当磁盘空间不足时引发此异常。
22 HTTPConnectionException: 当请求失败时引发此异常。
23 Exception: 当发生其他异常时引发此异常。
24 """
- appbuilder.assistant.assistants.files.download 对应的 Assistant API 链接
- appbuilder.assistant.assistants.files.download 的请求参数
1file_id (str): 文件ID
appbuilder.assistant.assistants.files.content
功能:获取指定文件的内容
1def content(self,
2 file_id:str,
3 timeout:Optional[int]=None):
4 """
5 获取指定文件的内容
6
7 Args:
8 file_id (str): 文件ID
9 timeout (Optional[int], optional): 请求超时时间,单位秒. Defaults to None.
10
11 Returns:
12 assistant_type.AssistantFilesContentResponse: 包含文件内容的响应对象
13
14 Raises:
15 TypeError: 当file_id不是字符串类型时引发此异常
16 FileNotFoundError: 当指定的文件路径不存在时引发此异常
17 HTTPConnectionException: 当请求失败时引发此异常
18
19 """
- appbuilder.assistant.assistants.files.content 对应的 Assistant API 链接
- appbuilder.assistant.assistants.files.content 的请求参数
1file_id (str): 文件ID
appbuilder.assistant.threads
appbuilder.assistant.threads.create
功能:创建一个对话线程(等价于converstaion)
1def create(self, messages: Optional[list[thread_type.AssistantMessage]] = []) -> thread_type.ThreadCreateResponse:
2 """
3 创建一个新的对话线程。
4
5 Args:
6 messages: 要发送给助手的消息列表。如果不传入此参数,则会创建一个空对话线程。
7
8 Returns:
9 一个ThreadCreateResponse对象,包含新创建的线程的相关信息。
10
11 Raises:
12 ValueError: 如果传入的messages参数不是列表类型。
13
14 """
- appbuilder.assistant.threads.create 对应的 Assistant API 链接
- appbuilder.assistant.threads.create 的请求参数
1class ThreadCreateRequest(BaseModel):
2 messages: list[AssistantMessage]
- appbuilder.assistant.threads.create 的响应参数
1class ThreadCreateResponse(BaseModel):
2 id: str = ""
3 object: str = ""
4 created_at: int = 0
5 metadata: dict = {}
appbuilder.assistant.threads.query
功能:查询对话线程信息。
1def query(self,
2 thread_id:str)->thread_type.ThreadQueryResponse:
3 """
4 查询对话线程信息。
5 Args:
6 thread_id: 要查询的对话线程ID。
7 Returns:
8 一个ThreadQueryResponse对象,包含对话线程的相关信息。
9 Raises:
10 ValueError: 如果传入的thread_id参数不是字符串类型。
11 """
- appbuilder.assistant.threads.query 对应的 Assistant API 链接
- appbuilder.assistant.threads.query 的请求参数
1class ThreadQueryRequest(BaseModel):
2 thread_id: str
- appbuilder.assistant.threads.query 的响应参数
1class ThreadQueryResponse(BaseModel):
2 id: str = ""
3 object: str = ""
4 created_at: int = 0
5 metadata: dict = {}
appbuilder.assistant.threads.delete
功能:删除对话线程。
1def delete(self,
2 thread_id:str)->thread_type.ThreadDeleteResponse:
3 """
4 删除对话线程。
5 Args:
6 thread_id: 要删除的对话线程ID。
7 Returns:
8 一个ThreadDeleteResponse对象,包含对话线程的相关信息。
9 Raises:
10 ValueError: 如果传入的thread_id参数不是字符串类型。
11 """
- appbuilder.assistant.threads.delete 对应的 Assistant API 链接
- appbuilder.assistant.threads.delete 的请求参数
1class ThreadDeleteRequest(BaseModel):
2 thread_id: str
- appbuilder.assistant.threads.delete 的响应参数
1class ThreadDeleteResponse(BaseModel):
2 id: str = ""
3 object: str = ""
4 deleted: bool = False
appbuilder.assistant.threads.update
功能:
1def update(self,
2 thread_id:str ,
3 metadata:Optional[dict] ={} )->thread_type.ThreadUpdateResponse:
4 """
5 更新线程信息
6
7 Args:
8 thread_id (str): 线程ID
9 metadata (Optional[dict], optional): 线程元数据. 默认为空字典.
10
11 Returns:
12 thread_type.ThreadUpdateResponse: 线程更新响应
13
14 Raises:
15 TypeError: 如果metadata不是字典类型
16 ValueError: 如果metadata的键超过64个字符或值超过512个字符
17 """
- appbuilder.assistant.threads.update 对应的 Assistant API 链接
- appbuilder.assistant.threads.update 的请求参数
1class ThreadUpdateRequest(BaseModel):
2 thread_id: str
3 metadata: Optional[dict] = Field(default={}, max_length=16)
- appbuilder.assistant.threads.update 的响应参数
1class ThreadUpdateResponse(BaseModel):
2 id: str = ""
3 object: str = ""
4 created_at: Optional[int] = 0
5 metadata: Optional[dict] = {}
appbuilder.assistant.threads.messages
appbuilder.assistant.threads.messages.create
功能:在指定的thread中,最后位置附加一条消息
1def create(self,
2 thread_id: str,
3 content: str,
4 role: Optional[str] = "user",
5 file_ids: Optional[list[str]] = []) -> thread_type.AssistantMessageCreateResponse:
6 """
7 创建一条消息。
8
9 Args:
10 thread_id (str): 线程ID。
11 content (str): 消息内容。
12 role (Optional[str], optional): 角色,可选值为"user"或"assistant"。默认为"user"。
13 file_ids (Optional[list[str]], optional): 消息中包含的文件ID列表。默认为空列表。
14
15 Returns:
16 thread_type.AssistantMessageCreateResponse: 消息创建响应对象。
17
18 Raises:
19 HttpError: 如果请求失败,则抛出HttpError异常。
20 """
- appbuilder.assistant.threads.messages.create 对应的 Assistant API 链接
- appbuilder.assistant.threads.messages.create 的请求参数
1class AssistantMessageCreateRequest(BaseModel):
2 thread_id: str
3 role: AssistantMessageRole = Field(
4 default=AssistantMessageRole.USER)
5 content: str
6 file_ids: Optional[list[str]] = Field(default=[], max_length=10)
- appbuilder.assistant.threads.messages.create 的响应参数
1class AssistantMessageCreateResponse(BaseModel):
2 id: str = ""
3 object: str = ""
4 role: AssistantMessageRole = Field(
5 default=AssistantMessageRole.USER)
6 content: Optional[list[AssistantContent]] = []
7 created_at: int = 0
8 thread_id: str = ""
9 assistant_id: Optional[str] = ""
10 run_id: Optional[str] = ""
11 file_ids: Optional[list[str]] = []
appbuilder.assistant.threads.messages.list
功能:查询指定Thread下的Message列表
1def list(self,
2 thread_id: str,
3 limit: int = 20,
4 order: str = "desc",
5 after: str = "",
6 before: str = "") -> thread_type.AssistantMessageListResponse:
7 """
8 查询指定Thread下的Message列表
9 Args:
10 thread_id (str): 线程ID。
11 limit (int, optional): 返回消息的最大数量,取值范围为[1,20]。默认为-20。
12 order (Optional[str], optional): 排序方式,可选值为"asc"或"desc"。默认为"desc"。
13 after (Optional[str], optional): 查询指定message_id之后创建的Message。
14 before (Optional[str], optional): 查询指定message_id之前创建的Message
15
16 Returns:
17 thread_type.AssistantMessageListResponse: 查询thread下的message列表响应对象。
18
19 Raises:
20 HttpError: 如果请求失败,则抛出HttpError异常。
21 """
- appbuilder.assistant.threads.messages.list 对应的 Assistant API 链接
- appbuilder.assistant.threads.messages.list 的请求参数
1class AssistantMessageListRequest(BaseModel):
2 thread_id: str
3 limit: int = -20
4 order: AssistantMessageListRole = Field(
5 default=AssistantMessageListRole.DESC)
6 after: str = ""
7 before: str = ""
- appbuilder.assistant.threads.messages.list 的响应参数
1class AssistantMessageListResponse(BaseModel):
2 object: str = ""
3 data: list[AssistantMessageListResponseData] = []
4 first_id: Optional[str] = ""
5 last_id: Optional[str] = ""
6 has_more: bool = False
注:AssistantMessageListResponseData类即为AssistantMessageQueryResponse类
appbuilder.assistant.threads.messages.query
功能:根据message_id查询指定Message的信息
1def query(self,
2 thread_id:str,
3 message_id:str) -> thread_type.AssistantMessageQueryResponse:
4 """
5 根据message_id查询指定Message的信息
6
7 Args:
8 thread_id (str): 线程ID
9 message_id (str): 消息ID
10
11 Returns:
12 thread_type.AssistantMessageQueryResponse: 消息信息响应
13
14 Raises:
15 HttpError: 如果请求失败,则抛出HttpError异常。
16 """
- appbuilder.assistant.threads.messages.query 对应的 Assistant API 链接
- appbuilder.assistant.threads.messages.query 的请求参数
1class AssistantMessageQueryRequest(BaseModel):
2 thread_id: str
3 message_id: str
- appbuilder.assistant.threads.messages.query 的响应参数
1class AssistantMessageQueryResponse(BaseModel):
2 id: str = ""
3 object: str = ""
4 role: AssistantMessageRole = Field()
5 content: Optional[list[AssistantContent]] = []
6 created_at: int = 0
7 thread_id: str = ""
8 assistant_id: Optional[str] = ""
9 run_id: Optional[str] = ""
10 file_ids: Optional[list[str]] = []
appbuilder.assistant.threads.messages.update
功能:修改Message对象,允许content和file_ids字段
1def update(self,
2 thread_id: str,
3 message_id: str,
4 content: Optional[str],
5 file_ids: Optional[list[str]] = []) -> thread_type.AssistantMessageUpdateResponse:
6 """
7 修改Message对象,允许content和file_ids字段
8 Args:
9 thread_id (str): 线程ID。
10 message_id (str): 消息ID。
11 content (Optional[str], optional): 消息内容。默认为空字符串。
12 file_ids (Optional[list[str]], optional): 消息中包含的文件ID列表。默认为空列表。
13 Returns:
14 thread_type.AssistantMessageUpdateResponse: 消息更新响应对象。
15 Raises:
16 HttpError: 如果请求失败,则抛出HttpError异常。
17 """
- appbuilder.assistant.threads.messages.update 对应的 Assistant API 链接
- appbuilder.assistant.threads.messages.update 的请求参数
1class AssistantMessageUpdateRequest(BaseModel):
2 thread_id: str
3 message_id: str
4 content: Optional[str]
5 file_ids: Optional[list[str]] = []
- appbuilder.assistant.threads.messages.update 的响应参数
1class AssistantMessageUpdateResponse(BaseModel):
2 id: str = ""
3 object: str = ""
4 role: AssistantMessageRole = Field(default=AssistantMessageRole.USER)
5 content: Optional[list[AssistantContent]] = []
6 created_at: int = 0
7 thread_id: str = ""
8 assistant_id: Optional[str] = ""
9 run_id: Optional[str] = ""
10 file_ids: Optional[list[str]] = []
appbuilder.assistant.threads.messages.files
功能:查询一个Message对象下的文件列表
1def files(self,
2 thread_id:str,
3 message_id:str,
4 limit:Optional[int] = 20,
5 order:Optional[str] = "desc",
6 after:Optional[str] = "",
7 before:Optional[str] = "") -> thread_type.AssistantMessageFilesResponse:
8 """
9 获取指定消息 ID 的附件信息。
10
11 Args:
12 thread_id (str): 线程 ID。
13 messsages_id (str): 消息 ID。
14 limit (Optional[int], optional): 返回结果的最大数量,默认为 20。
15 order (Optional[str], optional): 排序方式,可选值为 "asc" 或 "desc",默认为 "desc"。
16 after (Optional[str], optional): 返回结果的时间范围,只返回时间晚于该时间戳的消息附件,默认为空。
17 before (Optional[str], optional): 返回结果的时间范围,只返回时间早于该时间戳的消息附件,默认为空。
18
19 Returns:
20 thread_type.AssistantMessageFilesResponse: 附件信息响应对象。
21 """
- appbuilder.assistant.threads.messages.files 对应的 Assistant API 链接
- appbuilder.assistant.threads.messages.files 的请求参数
1class AssistantMessageFilesRequest(BaseModel):
2 thread_id: str
3 message_id: str
4 limit: int = -20
5 order : AssistantMessageListRole = Field(
6 default=AssistantMessageListRole.DESC)
7 after: str = ""
8 before: str = ""
- appbuilder.assistant.threads.messages.files 的响应参数
1class AssistantMessageFilesResponse(BaseModel):
2 object: str = ""
3 data: list[AssistantContentFilesData] = []
4 first_id: Optional[str] = ""
5 last_id: Optional[str] = ""
6 has_more: bool = False
注:AssistantContentFilesData类即为AssistantFilesResponse类
appbuilder.assistant.threads.runs
appbuilder.assistant.threads.runs.run
功能:同步非流式运行方法,使用指定的assistant与thread
1def run(self,
2 assistant_id: str,
3 thread_id: Optional[str] = "",
4 thread: Optional[thread_type.AssistantThread] = None,
5 model: Optional[str] = "ERNIE-4.0-8K",
6 response_format: Optional[str] = "text",
7 instructions: Optional[str] = "",
8 thought_instructions: Optional[str] = "",
9 chat_instructions: Optional[str] = "",
10 tools: Optional[list[assistant_type.AssistantTool]] = [],
11 metadata: Optional[dict] = {},
12 tool_output: Optional[thread_type.ToolOutput] = None,
13 model_parameters: Optional[public_type.AssistantModelParameters] = None,
14 user_info: Optional[public_type.AssistantUserInfo] = None,
15 user_loc: Optional[public_type.AssistantUserLoc] = None,
16 ) -> thread_type.RunResult:
17 """
18 Args:
19 assistant_id (str): 助手id
20 thread_id (Optional[str], optional): 对话id. Defaults to "".
21 thread (Optional[thread_type.AssistantThread], optional): 对话信息. Defaults to None.
22 model (Optional[str], optional): 模型名称. Defaults to "ERNIE-4.0-8K".
23 response_format (Optional[str], optional): 返回格式. Defaults to "text".
24 instructions (Optional[str], optional): 指令信息. Defaults to "".
25 thought_instructions (Optional[str], optional): 思考指令信息. Defaults to "".
26 chat_instructions (Optional[str], optional): 闲聊指令信息. Defaults to "".
27 tools (Optional[list[assistant_type.AssistantTool]], optional): 工具列表. Defaults to [].
28 metadata (Optional[dict], optional): 元数据. Defaults to {}.
29 tool_output (Optional[thread_type.ToolOutput], optional): 工具输出. Defaults to None.
30 model_parameters (Optional[public_type.AssistantModelParameters], optional): 模型运行参数. Defaults to None.
31 user_info (Optional[public_type.AssistantUserInfo], optional): 用户身份信息. Defaults to None.
32 user_loc (Optional[public_type.AssistantUserLoc], optional): 用户定位信息. Defaults to None.
33 Returns:
34 thread_type.RunResult: 运行结果
35
36 Raises:
37 ValueError: thread_id和thread不能同时为空,model_parameters的各个参数不在规定范围内
38
39 Note:
40 1. 如果thread_id没有传,则thread必须要传值
41 2. 如果这里不传值,thread_id查出来的历史对话,最后一条消息的role必须为user
42 3. 如果这里传值,则需要保证thread_id查出来的历史对话 + 本轮追加的thread对话,最后一条消息的role必须为user
43 """
- appbuilder.assistant.threads.runs.run 对应的 Assistant API 链接
- appbuilder.assistant.threads..runs.run 的请求参数
1class AssistantRunRequest(BaseModel):
2 thread_id: Optional[str] = Field(default="")
3 model: str = Field(default="ERNIE-4.0-8K")
4 assistant_id: Optional[str] = Field(default="")
5 metadata: Optional[dict] = Field(default={}, max_length=16)
6 response_format: ResponseFormat = Field(default=ResponseFormat.TEXT)
7 instructions: Optional[str] = Field(default="", max_length=4096)
8 thought_instructions: Optional[str] = Field(default="", max_length=4096)
9 chat_instructions: Optional[str] = Field(default="", max_length=4096)
10 stream: Optional[bool] = False
11 model_parameters: Optional[AssistantModelParameters] = AssistantModelParameters()
12 class Config:
13 extra = "forbid"
14 protected_namespaces = ()
15 thread: Optional[AssistantThread] = None
16 tools: Optional[list[AssistantTool]] = []
17 tool_output: Optional[ToolOutput] = None
18 user_info: Optional[AssistantUserInfo] = None
19 user_loc: Optional[AssistantUserLoc] = None
1class RunResult(BaseModel):
2 id: str = ""
3 object: str = ""
4 assistant_id: str = ""
5 thread_id: str = ""
6
7 model: str = ""
8 instructions: str = ""
9 thought_instructions: str = ""
10 chat_instructions: str = ""
11 tools: Optional[list[AssistantTool]] = None
12 file_ids: Optional[list[str]] = None
13
14 status: str = ""
15 required_action: Optional[RequiredAction] = None
16 last_error: Optional[LastError] = None
17 final_answer: Optional[FinalAnswer] = None
18 created_at: int = 0
19 started_at: int = 0
20 expired_at: int = 0
21 cancelled_at: int = 0
22 failed_at: int = 0
23 completed_at: int = 0
appbuilder.assistant.threads.runs.stream_run
功能:流式运行方法,使用指定的assistant与thread
1def stream_run(self,
2 assistant_id: str,
3 thread_id: Optional[str] = "",
4 thread: Optional[thread_type.AssistantThread] = None,
5 model: Optional[str] = "ERNIE-4.0-8K",
6 response_format: Optional[str] = "text",
7 instructions: Optional[str] = "",
8 thought_instructions: Optional[str] = "",
9 chat_instructions: Optional[str] = "",
10 tools: Optional[list[assistant_type.AssistantTool]] = [],
11 metadata: Optional[dict] = {},
12 tool_output: Optional[thread_type.ToolOutput] = None,
13 model_parameters: Optional[public_type.AssistantModelParameters] = None,
14 user_info: Optional[public_type.AssistantUserInfo] = None,
15 user_loc: Optional[public_type.AssistantUserLoc] = None,
16 ) -> Union[thread_type.StreamRunStatus, thread_type.StreamRunMessage, None]:
17 """
18 启动一个流式运行的对话,用于处理对话流中的消息。
19
20 Args:
21 assistant_id (str): 助理ID。
22 thread_id (Optional[str], optional): 线程ID,用于恢复历史对话。默认为空字符串。
23 thread (Optional[thread_type.AssistantThread], optional): 线程对象,用于恢复历史对话。默认为None。
24 model (Optional[str], optional): 使用的模型名称。默认为"ERNIE-4.0-8K"。
25 response_format (Optional[str], optional): 响应格式,支持"text"和"json"两种格式。默认为"text"。
26 instructions (Optional[str], optional): 指令文本。默认为空字符串。
27 thought_instructions (Optional[str], optional): 思考指令文本。默认为空字符串。
28 chat_instructions (Optional[str], optional): 聊天指令文本。默认为空字符串。
29 tools (Optional[list[assistant_type.AssistantTool]], optional): 使用的工具列表。默认为空列表。
30 metadata (Optional[dict], optional): 元数据字典。默认为空字典。
31 tool_output (Optional[thread_type.ToolOutput], optional): 工具输出对象。默认为None。
32 model_parameters (Optional[public_type.AssistantModelParameters], optional): 模型参数对象。默认为None。
33
34 Returns:
35 Union[thread_type.StreamRunStatus, thread_type.StreamRunMessage, None]: 返回一个迭代器,每次迭代返回一个处理结果对象,可能是 StreamRunStatus 或 StreamRunMessage。
36
37 Raises:
38 ValueError: 如果thread_id和thread参数同时为空,则会引发ValueError异常。
39
40 Note:
41 1. 如果thread_id没有传,则thread必须要传值。
42 2. 如果这里不传值,thread_id查出来的历史对话,最后一条消息的role必须为user。
43 3. 如果这里传值,则需要保证thread_id查出来的历史对话 + 本轮追加的thread对话,最后一条消息的role必须为user。
44 """
appbuilder.assistant.threads.runs.submit_tool_outputs
功能:在流式运行中,提交本地FunctionCall的运行结果
1def submit_tool_outputs(self,
2 run_id: str,
3 thread_id: str,
4 tool_outputs: Optional[list[thread_type.ToolOutput]]) -> thread_type.RunResult:
5 """
6 向服务端提交工具输出
7
8 Args:
9 run_id (str): 运行ID
10 thread_id (str): 线程ID
11 tool_outputs (Optional[list[thread_type.ToolOutput]]): 工具输出列表,可选
12
13 Returns:
14 thread_type.RunResult: 运行结果
15
16 """
- appbuilder.assistant.threads.runs.submit_tool_outputs 对应的 Assistant API 链接
- appbuilder.assistant.threads..runs.submit_tool_outputs 的请求参数
1class AssistantSubmitToolOutputsRequest(BaseModel):
2 thread_id: str = Field(default="", min_length=1)
3 run_id: str = Field(default="", min_length=1)
4 tool_outputs: Optional[list[ToolOutput]] = Field(default=[], min_length=1)
- appbuilder.assistant.threads..runs.submit_tool_outputs 的响应参数
1class RunResult(BaseModel):
2 id: str = ""
3 object: str = ""
4 assistant_id: str = ""
5 thread_id: str = ""
6
7 model: str = ""
8 instructions: str = ""
9 thought_instructions: str = ""
10 chat_instructions: str = ""
11 tools: Optional[list[AssistantTool]] = None
12 file_ids: Optional[list[str]] = None
13
14 status: str = ""
15 required_action: Optional[RequiredAction] = None
16 last_error: Optional[LastError] = None
17 final_answer: Optional[FinalAnswer] = None
18 created_at: int = 0
19 started_at: int = 0
20 expired_at: int = 0
21 cancelled_at: int = 0
22 failed_at: int = 0
23 completed_at: int = 0
appbuilder.assistant.threads.runs.cancel
功能:在流式运行过程,中断该thread.stream_run的运行
1def cancel(self, run_id: str, thread_id: str) -> thread_type.RunResult:
2 """
3 取消指定线程的运行
4
5 Args:
6 run_id (str): 运行的ID
7 thread_id (str): 线程的ID
8
9 Returns:
10 thread_type.RunResult: 取消运行的结果
11
12 """
- appbuilder.assistant.threads.runs.cancel 对应的 Assistant API 链接
- appbuilder.assistant.threads..runs.cancel 的请求参数
1class AssistantRunCancelRequest(BaseModel):
2 thread_id: str = Field(default="", min_length=1)
3 run_id: str = Field(default="", min_length=1)
- appbuilder.assistant.threads..runs.cancel 的响应参数
1class RunResult(BaseModel):
2 id: str = ""
3 object: str = ""
4 assistant_id: str = ""
5 thread_id: str = ""
6
7 model: str = ""
8 instructions: str = ""
9 thought_instructions: str = ""
10 chat_instructions: str = ""
11 tools: Optional[list[AssistantTool]] = None
12 file_ids: Optional[list[str]] = None
13
14 status: str = ""
15 required_action: Optional[RequiredAction] = None
16 last_error: Optional[LastError] = None
17 final_answer: Optional[FinalAnswer] = None
18 created_at: int = 0
19 started_at: int = 0
20 expired_at: int = 0
21 cancelled_at: int = 0
22 failed_at: int = 0
23 completed_at: int = 0
appbuilder.assistant公共类
- AssistantTool
1class AssistantTool(BaseModel):
2 """
3 表示助理工具的模型。
4
5 Attributes:
6 type (str): 工具的类型,默认为 'function'。
7 function (AssistantFunction): 功能的实例。
8 """
9 type: str = 'function'
10 function: AssistantFunction = None
- AssistantContent
1class AssistantContent(BaseModel):
2 """
3 表示助理内容的模型。
4
5 Attributes:
6 type (str): 内容类型,默认为 "text"。
7 text (Optional[AssistantText]): 文本内容的实例,默认为None。
8 """
9 type: str = "text"
10 text: Optional[AssistantText] = None
- AssistantText
1class AssistantText(BaseModel):
2 """
3 表示助理文本内容的模型。
4
5 Attributes:
6 value (str): 文本的值。
7 annotations (Optional[list[str]]): 文本的注解列表,默认为None。
8 """
9 value: str = ""
10 annotations: Optional[list[str]] = None
- ResponseFormat
1class ResponseFormat(str, Enum):
2 """
3 表示响应格式的枚举类型。
4
5 Values:
6 TEXT: 文本格式。
7 JSON_OBJECT: JSON对象格式。
8 """
9 TEXT = 'text'
10 JSON_OBJECT = 'json_object'
-
AssistantModelParameters
- AssistantThoughtParameters
- AssistantChatParameters
1class AssistantModelParameters(BaseModel):
2 """
3 表示助理模型的参数的模型。
4 Attributes:
5 chat_parameters (Optional[AssistantChatParameters]): 聊天参数的实例,默认为None。
6 thought_parameters (Optional[AssistantThoughtParameters]): 思考参数的实例,默认为None。
7 """
8 chat_parameters: Optional[AssistantChatParameters] = AssistantChatParameters()
9 thought_parameters: Optional[AssistantThoughtParameters] = AssistantThoughtParameters()
10
11
12class AssistantThoughtParameters(BaseModel):
13 """
14 表示助理思考参数的模型。
15 Attributes:
16 temperature (Optional[float]): 采样温度,较高的数值会使输出更随机。取值范围严格大于0,小于等于1,默认为0.01。
17 top_p (Optional[float]): top_p,核采样方法的概率阈值,影响输出文本的多样性,较低的数值会使输出的文本更加多样性。取值范围大于等于0,小于等于1,默认为0。
18 penalty_score (Optional[float]): 惩罚分数,影响输出文本的多样性和质量,较高的数值使输出的文本更加多样性。取值范围大于等于1,小于等于2,默认为1.0。
19 """
20 temperature: Optional[float] = 0.01
21 top_p: Optional[float] = 0
22 penalty_score: Optional[float] = 1.0
23
24
25class AssistantChatParameters(BaseModel):
26 """
27 表示助理聊天参数的模型。
28 Attributes:
29 temperature (Optional[float]): 采样温度,较高的数值会使输出更随机。取值范围严格大于0,小于等于1,默认为0.8。
30 top_p (Optional[float]): top_p,核采样方法的概率阈值,影响输出文本的多样性,较低的数值会使输出的文本更加多样性。取值范围大于等于0,小于等于1,默认为0.8。
31 penalty_score (Optional[float]): 惩罚分数,影响输出文本的多样性和质量,较高的数值使输出的文本更加多样性。
32 """
33 temperature: Optional[float] = 0.8
34 top_p: Optional[float] = 0.8
35 penalty_score: Optional[float] = 1.0
-AssistantUserInfo
1class AssistantUserInfo(BaseModel):
2 """
3 表示用户信息。
4 Attributes:
5 id (Optional[str]): 用户ID,默认为None。
6 name (Optional[str]): 用户名称,默认为None。
7 nickname (Optional[str]): 用户昵称,默认为None。
8 watermark (Optional[str]): 用户水印,默认为None。
9 intro (Optional[str]): 用户简介,默认为None。
10 baidu_id (Optional[str]): 用户百度ID,默认为None。
11 """
12 id:Optional[str] = None
13 name:Optional[str] = None
14 nickname:Optional[str] = None
15 watermark:Optional[str] = None
16 intro:Optional[str] = None
17 baidu_id: Optional[str] = None
- AssistantUserLoc
1class AssistantUserLoc(BaseModel):
2 """
3 表示用户位置信息。
4 Attributes:
5 loc (Optional[str]): 用户当前的地理位置信息,使用json格式描述
6 uip (Optional[str]): 用户的ipv4地址
7 uipv6 (Optional[str]): 用户的ipv6地址
8 """
9 loc:Optional[str] = None
10 uip:Optional[str] = None
11 uipv6:Optional[str] = None