Opik Python SDK Check 客户端详解:工作区访问鉴权与当前工作区获取

发布时间:2026/9/13 22:50:02
Opik Python SDK Check 客户端详解:工作区访问鉴权与当前工作区获取
Opik Python SDK Check 客户端详解工作区访问鉴权与当前工作区获取【免费下载链接】comet-llmDebug, evaluate, and monitor your LLM applications, RAG systems, and agentic workflows with comprehensive tracing, automated evaluations, and production-ready dashboards.项目地址: https://gitcode.com/GitHub_Trending/co/comet-llm本文基于 Opik 官方 Python SDK 文档中的 Check Client 章节系统讲解如何使用rest_client.check完成平台访问校验与工作区信息查询并结合仓库中 Fern 生成的 SDK 源码剖析access()与get_workspace_name()背后的真实 HTTP 端点、请求/响应模型与错误处理机制。读完后你可以直接在脚本或 Agent 工作流中安全地探测 Opik 服务可用性、验证 API Key 对工作区的访问权限并动态获取当前用户的默认工作区名称。Check 客户端的定位与访问路径根据 Check Client 文档页Check 客户端的定位是The Check client provides methods for checking system status and access in the Opik platform.即 Check 客户端提供检查系统状态与访问权限的方法是 Opik 平台 REST API 客户端rest_api包中的一个子客户端。它在顶层客户端中被挂载为check属性——文档中的使用示例即通过client.rest_client.check.方法的形式调用。其源码位于 check 包目录文件头标注This file was auto-generated by Fern from our API Definition说明该客户端由 OpenAPI 定义通过 Fern 工具链自动生成方法签名、路径、错误码映射均与后端 API 契约严格一致。核心方法一access()—— 检查用户对工作区的访问权限CheckClient.access()用于校验当前凭证对工作区的访问权限其签名与文档字符串为def access(self, *, request: AuthDetailsHolder, request_options: typing.Optional[RequestOptions] None) - None: Check user access to workspace Parameters ---------- request : AuthDetailsHolder request_options : typing.Optional[RequestOptions] Request-specific configuration. Returns ------- None 从 RawCheckClient 源码 可以看到其底层实现端点POST v1/private/auth请求头为content-type: application/jsonrequest参数作为 JSON 请求体发送请求体类型AuthDetailsHolder。查看 auth_details_holder.py 可知它就是一个自由结构的字典别名typing.Dict[str, typing.Optional[typing.Any]]这也是文档示例中可以直接传request{}空字典的原因成功条件HTTP 状态码落在200 status 300区间方法返回None语义该方法本身不返回业务数据它的价值在于“调通即代表凭证有效、有权访问工作区”权限不足时以异常形式抛出见下文错误处理小节。核心方法二get_workspace_name()—— 获取用户默认工作区名称CheckClient.get_workspace_name()无需任何业务参数def get_workspace_name(self, *, request_options: typing.Optional[RequestOptions] None) - WorkspaceNameHolder: Users default workspace name ... 底层实现见 raw_client.py 中对应方法端点GET v1/private/auth/workspace无请求体响应模型WorkspaceNameHolder。查看 workspace_name_holder.py这是一个 Pydantic 模型核心字段为workspace_name: typing.Optional[str]并配置了frozenTrue不可变、extraallow允许后端追加的额外字段透传同时兼容 Pydantic v1/v2。该方法的一个典型实战用途是在初始化 SDK 时如果只配置了api_key而未显式指定workspace_name可以先调用此接口拿到当前凭证绑定的默认工作区名再据此补齐配置或做日志记录。参数与返回值类型速览名称类型说明requestAuthDetailsHolderDict[str, Optional[Any]]access()的 JSON 请求体可传空字典request_optionsOptional[RequestOptions]两个方法共有的请求级配置如超时、自定义头不传即用客户端默认值access()返回值None成功即 2xx无业务数据get_workspace_name()返回值WorkspaceNameHolder含可选字段workspace_name: Optional[str]with_raw_response属性返回RawCheckClient需要拿到原始HttpResponse含状态码、响应头时使用上述类型定义均可在仓库中直接查证AuthDetailsHolder 与 WorkspaceNameHolder。错误处理机制401 / 403 被映射为专用异常两个方法的 raw 实现中包含完全一致的错误分支逻辑从 raw_client.py 可以确认HTTP 2xx正常返回HTTP 401抛出UnauthorizedError凭证无效、API Key 错误等场景HTTP 403抛出ForbiddenError凭证有效但无权访问该工作区响应体不是合法 JSONJSONDecodeError抛出携带原始文本body的ApiError其他非 2xx 状态码抛出携带已解析 JSON body 的ApiError。这意味着在脚本中可以精确区分“凭证问题”401与“权限问题”403例如from opik.rest_api.errors.forbidden_error import ForbiddenError from opik.rest_api.errors.unauthorized_error import UnauthorizedError try: client.rest_client.check.access(request{}) except UnauthorizedError: print(API Key 无效或已过期) except ForbiddenError: print(该 Key 无权访问此工作区)异步版本AsyncCheckClientclient.py 同时生成了AsyncCheckClient接口与同步版一一对应await client.check.access(request{})、await client.check.get_workspace_name()同样经由AsyncRawCheckClient命中相同端点并抛出相同的异常体系。适合在 async Agent 工作流或高并发检查场景中直接使用。使用示例继承自官方文档Check Client 文档页 给出的标准用法import opik client opik.Opik() # Check access to the workspace client.rest_client.check.access(request{}) # Get workspace name workspace_info client.rest_client.check.get_workspace_name() # Get bootstrap info bootstrap_info client.rest_client.check.bootstrap()需要说明的是以上示例来自文档原文而从当前仓库中 Fern 生成的 CheckClient 源码 看同步/异步客户端实际暴露的方法为access()与get_workspace_name()两个建议以当前 SDK 安装版本中check客户端实际存在的方法为准。适用前提与延伸阅读前提已安装opikPython SDK并在初始化时配置了有效的api_key以及可选的workspace_name、project_urlCheck 客户端只覆盖“鉴权探测”这一类轻量只读操作其他业务客户端traces、spans、datasets 等可参考 REST API 总览文档 与 clients 目录 下的各客户端文档页所有rest_api下客户端均为 Fern 自动生成如需理解请求构造细节可直接阅读对应目录下的client.py业务方法 文档字符串与raw_client.py端点、状态码分支、异常映射。【免费下载链接】comet-llmDebug, evaluate, and monitor your LLM applications, RAG systems, and agentic workflows with comprehensive tracing, automated evaluations, and production-ready dashboards.项目地址: https://gitcode.com/GitHub_Trending/co/comet-llm创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考