
検証可能なプライベートAI推論のためのオープンソースフレームワーク
OpenPCC は、Apple の Private Cloud Compute に触発された、証明可能なプライベート AI 推論のためのオープンソースフレームワークであり、完全にオープンで監査可能、かつ自社インフラストラクチャにデプロイ可能です。プロンプト、出力、ログを一切公開することなく、誰でもオープンまたはカスタムの AI モデルを実行できるようにし、暗号化ストリーミング、ハードウェア構成証明、リンク不可能なリクエストによってプライバシーを強制します。
OpenPCC は、AI データプライバシーのための透明性があり、コミュニティが管理する標準となることを目指しています。
OpenPCC ホワイトペーパーを読む: https://github.com/openpcc/openpcc/blob/main/whitepaper/openpcc.pdf
Confident Security は、OpenPCC 標準に基づく CONFSEC と呼ばれるフルマネージドサービスを構築しています。詳細とサインアップは https://confident.security をご覧ください。
このリポジトリには、OpenPCC 準拠の go クライアントと、python および javascript クライアントの基礎として使用される c ライブラリのコードが含まれています。さらに、クライアントをテストするために使用できる多数のインメモリサービスも含まれています。
コンピュートプロバイダーが個々のユーザーの操作を把握できないようにするため、OpenPCC は Oblivious HTTP (OHTTP) を使用します。OpenPCC デプロイメントは OHTTP ゲートウェイを運用し、サードパーティが運用する OHTTP リレーを使用するようクライアントを設定してゲートウェイに到達することが想定されています。現在のところ、サインアップ後すぐに利用できる唯一の OHTTP リレーサービスとして Oblivious.network を推奨します。
このリポジトリに付随する関連するコンピュートノード実装については、https://github.com/confidentsecurity/confidentcompute を参照してください。
ローカル開発の例については cmd/test-client/main.go を参照してください。本番サービスに接続するには、次のようになります:
import (
"context"
"fmt"
"net/http"
"os"
"strings"
"github.com/openpcc/openpcc"
"github.com/openpcc/openpcc/inttest"
"github.com/openpcc/openpcc/transparency"
)
func makePCCRequest() error {
ctx := context.Background()
identityPolicy := transparency.IdentityPolicy{
OIDCSubjectRegex: "^https://github.com/confidentsecurity/T/.github/workflows.*",
OIDCIssuerRegex: "https://token.actions.githubusercontent.com",
}
cfg := openpcc.DefaultConfig()
cfg.APIURL = "https://app.confident.security"
cfg.APIKey = os.Getenv("<APIKEY_ENV_VAR_NAME>")
cfg.TransparencyVerifier = transparency.DefaultVerifierConfig()
cfg.TransparencyIdentityPolicy = &identityPolicy
client, err := openpcc.NewFromConfig(ctx, cfg)
if err != nil {
return fmt.Errorf("failed to create openpcc client: %w", err)
}
// Inference requests use OpenAI API generate format
body := "{\"model\":\"qwen3:1.7b\",\"prompt\":\"why is the sky blue?\"}"
// nosemgrep: problem-based-packs.insecure-transport.go-stdlib.http-customized-request.http-customized-request
req, err := http.NewRequest("POST", "http://confsec.invalid/v1/completions", strings.NewReader(body))
if err != nil {
return err
}
// add a tag to the request to route request to compute nodes that are running the specified model
req.Header.Add("X-Confsec-Node-Tags", "qwen3:1.7b")
resp, err := client.RoundTrip(req)
if err != nil {
return err
}
return nil
}
開発コマンドは Go ツール mage を使用して実行されます。
go tool mage [cmd] を使用して go.mod ツールのインストールからそのまま実行することも、go install github.com/magefile/mage@latest で mage 自体をインストールしてキー入力を省略することもできます。
mage はコマンドの一覧を表示します(コマンドのソースは /magefiles/* を参照)。
開発時にライブラリをテストするには、mage runMemServices を使用してすべてのインメモリ OpenPCC サービスを実行します。次に、mage runClient を使用してシステムにテストリクエストを送信します。