SuperAPI AI 工具集

deepgram-dotnet-management-api

编程与开发

查看项目

更新于 10-16 12:57

技能介绍

用途

本技能用于在 deepgram-dotnet-sdk 仓库中编写或审查调用 Deepgram Management API 的 C# 代码。它封装的是 Deepgram 的行政类 REST 端点,面向项目、模型、API 密钥、成员、邀请、用量、余额以及鉴权令牌授权等管理操作。

需要区分的是:若是运行实时智能体会话,应使用 deepgram-dotnet-voice-agent;若要做语音转写(STT)或语音合成(TTS)而非项目管理,也不属于本技能范围。

主要能力

管理接口:

  • 项目:GetProjects、GetProject、UpdateProject、DeleteProject、LeaveProject
  • 模型:GetModels、GetModel、GetProjectModels、GetProjectModel
  • 密钥:GetKeys、GetKey、CreateKey、DeleteKey
  • 邀请:GetInvites、SendInvite、DeleteInvite
  • 成员:GetMembers、GetMemberScopes、UpdateMemberScope、RemoveMember
  • 用量:GetUsageRequests、GetUsageRequest、GetUsageFields、GetUsageSummary
  • 余额:GetBalances、GetBalance

鉴权接口:

  • GrantToken()
  • GrantToken(GrantTokenSchema)

GrantToken 用于签发短时效的 Bearer 令牌,例如示例中设置 TtlSeconds 为 300。

使用方式

安装依赖:

dotnet add package Deepgram

初始化与创建客户端:

using Deepgram;

Library.Initialize();
var manageClient = ClientFactory.CreateManageClient();
var authClient = ClientFactory.CreateAuthClient();

两个工厂方法默认从 DEEPGRAM_API_KEY(或 DEEPGRAM_ACCESS_TOKEN)环境变量读取凭据。若要显式传入:ClientFactory.CreateManageClient(apiKey: "...", options: ...) 或 ClientFactory.CreateAuthClient(apiKey: "...", options: ...)。DeepgramHttpClientOptions 在既没有环境变量也没有显式凭据时会抛出异常。

项目与模型示例:

using Deepgram.Models.Manage.v1;

var client = ClientFactory.CreateManageClient();

var projects = await client.GetProjects();
var projectId = projects.Projects[0].ProjectId;

var project = await client.GetProject(projectId);
var models = await client.GetModels(new ModelSchema { IncludeOutdated = true });
var projectModels = await client.GetProjectModels(projectId);

密钥 / 邀请 / 成员 / 用量示例:

var client = ClientFactory.CreateManageClient();
var projectId = (await client.GetProjects()).Projects[0].ProjectId;

var key = await client.CreateKey(projectId, new KeySchema()
{
    Comment = "MyTestKey",
    Scopes = new List<string> { "member" },
});

await client.SendInvite(projectId, new InviteSchema()
{
    Email = "spam@spam.com",
    Scope = "member",
});

var members = await client.GetMembers(projectId);
var usage = await client.GetUsageRequests(projectId, new UsageRequestsSchema());
var balances = await client.GetBalances(projectId);

鉴权令牌授权示例:

using Deepgram.Models.Auth.v1;
using Deepgram.Models.Authenticate.v1;

var authClient = ClientFactory.CreateAuthClient();
var token = await authClient.GrantToken(new GrantTokenSchema
{
    TtlSeconds = 300,
});

var bearerOptions = new DeepgramHttpClientOptions(accessToken: token.AccessToken);
var prerecordClient = ClientFactory.CreateListenRESTClient(options: bearerOptions);

适用场景

  • 列出或变更项目。
  • 列出模型或查询某项目可用的模型。
  • 管理密钥、成员、邀请、作用域、用量与余额。
  • 用 GrantToken() 签发短时效 Bearer 令牌。

注意事项与限制

  • 本仓库目前不提供 Voice Agent 配置的增删改查,不要将 Python 客户端 client.voice_agent.configurations.* 的示例照搬到 C#。
  • 破坏性方法不可逆。DeleteProject、DeleteKey、DeleteInvite、RemoveMember 应始终采用“验证—删除—再验证”的模式:
// 1. Verify the resource exists
var key = await client.GetKey(projectId, keyId);
Console.WriteLine($"Found key: {key.ApiKey.Comment} ({keyId})");

// 2. Delete
await client.DeleteKey(projectId, keyId);

// 3. Verify deletion succeeded
try
{
    await client.GetKey(projectId, keyId);
    Console.Error.WriteLine("ERROR: key still exists after deletion");
}
catch
{
    Console.WriteLine("Key deleted successfully.");
}
  • 支持 Bearer 令牌鉴权。DeepgramHttpClientOptions 的优先级为:显式 accessToken 高于 apiKey,再高于环境变量。
  • 大多数子资源以项目为作用域,调用密钥 / 成员 / 用量相关方法前,需先通过 GetProjects() 获取项目 ID。

参考文件

仓库内:Deepgram/Clients/Manage/v1/Client.cs、Deepgram/Clients/Auth/v1/Client.cs、Deepgram/Models/Manage/v1/.cs、Deepgram/Models/Auth/v1/.cs

OpenAPI:https://developers.deepgram.com/openapi.yaml

产品文档:https://developers.deepgram.com/reference/manage/projects/list、https://developers.deepgram.com/reference/auth/grant-token

本仓库示例文件:

  • examples/manage/projects/Program.cs
  • examples/manage/models/Program.cs
  • examples/manage/keys/Program.cs
  • examples/manage/members/Program.cs
  • examples/manage/scopes/Program.cs
  • examples/manage/invitations/Program.cs
  • examples/manage/usage/Program.cs
  • examples/manage/balances/Program.cs
  • examples/auth/grant-token/Program.cs
  • examples/auth/bearer-token-workflow/Program.cs

跨语言产品知识(API 参考、配方、MCP 配置):npx skills add deepgram/skills。