সারাংশ
অ্যাক্সেস
অ্যাডমিন এপিআই কী ব্যবহার করে ব্যবস্থাপনা এপিআই থেকে ইকেএম এন্ডপয়েন্টগুলো অ্যাক্সেস করা যায়. https://platform.openai.com/settings/organization/admin-keys (সাধারণ এপিআই কী ব্যবহার করবেন না). প্রতিষ্ঠানের মালিকেরা অ্যাডমিন এপিআই কী ব্যবহার করতে পারেন.
বাহ্যিক কী তৈরি বা মুছে ফেলতে
api.external_keys.writeএবং বাহ্যিক কীগুলোর তালিকা পেতে বা সেগুলোর বৈধতা যাচাই করতেapi.external_keys.readব্যবহার করুন. একই কী দিয়ে পড়া ও লেখা উভয় কাজ করতে হলেই কেবল সেটির জন্য উভয় অনুমতির পরিধি প্রয়োজন.বর্তমানে এই এন্ডপয়েন্টগুলো ব্যবহারের জন্য আমাদের আপনার প্রতিষ্ঠানের ফিচার ফ্ল্যাগ চালু করতে হবে. বিদ্যমান প্রকল্পের তালিকা পাওয়ার এন্ডপয়েন্ট https://api.openai.com/v1/organization/projects থেকে ফেরত পাওয়া তথ্যে external_key_id থাকলে বুঝবেন আপনার ফিচার ফ্ল্যাগ চালু আছে.
ব্যবহার
নতুন এন্ডপয়েন্ট https://api.openai.com/v1/organization/external_keys দিয়ে আপনার ইকেএম কনফিগারেশন প্রতিষ্ঠান পর্যায়ে নিবন্ধিত হয়.
আপনার ইকেএম কনফিগারেশন নিবন্ধন করলে extkey_xxxx বিন্যাসে একটি external_key_id ফেরত পাওয়া যায়.
বিদ্যমান প্রকল্প তৈরির এন্ডপয়েন্ট https://api.openai.com/v1/organization/projects-এ পাঠানো অনুরোধের মূল অংশে একটি external_key_id দিলে ইকেএম কনফিগারেশন প্রকল্প পর্যায়ে সক্রিয় হয়.
বিধিনিষেধ
প্রথমে ব্যবস্থাপনা এপিআই ব্যবহার করে একটি নতুন প্রকল্পে ইকেএম পরীক্ষা করতে হবে.
ইকেএম-ভিত্তিক কাজের জন্য আমরা নতুন প্রকল্প তৈরি করার পরামর্শ দিই. তবে বিদ্যমান কোনো প্রকল্পে ইকেএম চাইলে আমরা আপনার জন্য ফিচার ফ্ল্যাগ চালু করে দিতে পারি. আপনার বিদ্যমান উৎপাদন পরিবেশের প্রকল্পগুলোতে ইকেএম চালু করার আগে নিচের উত্তম চর্চাগুলো খেয়াল করুন.
উৎপাদন পরিবেশে ব্যবহার করা এপিআইয়ের সব সুবিধা প্রথমে আপনার পরীক্ষামূলক ইকেএম এপিআই প্রকল্পে পরীক্ষা করুন.
উৎপাদন পরিবেশের সব এপিআই প্রকল্পে একসঙ্গে ইকেএম চালু না করে ধাপে ধাপে চালু করুন.
সংস্থা-স্তরের endpoints
আপনার সংস্থায় একটি বাহ্যিক কী নিবন্ধন করুন
এডব্লিউএস
অনুরোধের নমুনা:
type: স্ট্রিং - সবসময় “aws”
name: স্ট্রিং - আপনার কনফিগারেশনের জন্য সহজে চেনা যায় এমন একটি নাম
role_arn: স্ট্রিং - আপনার ক্লাউডে OpenAI যে ভূমিকা গ্রহণ করবে, তার এআরএন
kms_arn: স্ট্রিং - আপনার পরিচালিত মূল কীটির কী ব্যবস্থাপনা সিস্টেমের এআরএন
external_id: স্ট্রিং - আপনার অর্গানাইজেশন আইডি বা এপিআই প্রকল্পের আইডি
curl -X POST \
-H "Content-type: application/json" \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/external_keys" \
-d '{
"type": "aws",
"name": "AWS EKM Config",
"role_arn": "arn:aws:iam::<12_DIGIT_ACCOUNT_NUMBER>:role/<ROLE>",
"kms_arn": "arn:aws:kms:<REGION>:<ACCOUNT_NUMBER>:key/<UUID>",
"external_id": "<your org id or project id>"
}'প্রতিক্রিয়ার নমুনা:
{
"id": "extkey_xxxx",
"object": "organization.external_key",
"created_at": 1746175499,
"api_project_ids": [],
"type": "aws",
"name": "AWS EKM Config",
"role_arn": "arn:aws:iam::<ACCOUNT_NUMBER>:role/<ROLE>",
"kms_arn": "arn:aws:kms:<REGION>:<ACCOUNT_NUMBER>:key/<UUID>",
"external_id": "<your org id or project id>"
}জিসিপি
অনুরোধের নমুনা:
type: স্ট্রিং - সবসময় “gcp”,
name: স্ট্রিং - আপনার কনফিগারেশনের জন্য সহজে চেনা যায় এমন একটি নাম
workload_identity_project_number: স্ট্রিং - যে জিসিপি প্রকল্পে OpenAI-এর ওয়ার্কলোড পরিচয় নিবন্ধন করেছেন, তার সংখ্যাসূচক প্রকল্প নম্বর
workload_identity_pool_id: স্ট্রিং - OpenAI-এর জন্য আপনার নিবন্ধিত ওয়ার্কলোড পরিচয় প্রদানকারী যে পুলে রয়েছে
workload_identity_provider_id: স্ট্রিং - OpenAI-এর জন্য আপনার নিবন্ধিত ওয়ার্কলোড পরিচয় প্রদানকারী
audience: স্ট্রিং - আপনার জিসিপি এসটিএসের মাধ্যমে ভূমিকা গ্রহণের সময় OpenAI-এর টোকেনে যে প্রাপক উল্লেখ করতে হবে
kms_project_id: স্ট্রিং - যে জিসিপি প্রকল্পে আপনার কেএমএস রয়েছে, তার নাম
kms_key_ring_name: স্ট্রিং - কী ব্যবস্থাপনা সিস্টেমের যে কী রিংয়ে আপনার পরিচালিত মূল কীটি রয়েছে
kms_key_name: স্ট্রিং - কী ব্যবস্থাপনা সিস্টেমের মূল কীটির নাম
kms_key_location: স্ট্রিং - কী ব্যবস্থাপনা সিস্টেমের মূল কীটি যে অঞ্চলে রয়েছে
OpenAI-এর ওয়ার্কলোড পরিচয় যে জিসিপি প্রকল্পে নিবন্ধন করেছেন, আপনার কেএমএস যদি অন্য কোনো প্রকল্পে থাকে, তাহলে https://console.developers.google.com/apis/api/cloudkms.googleapis.com/overview-এ গিয়ে নিশ্চিত করুন যে OpenAI-এর ওয়ার্কলোড পরিচয় থাকা প্রকল্পে অন্তত কেএমএস চালু আছে.
curl -X POST \
-H "Content-type: application/json" \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/external_keys" \
-d '{
"type": "gcp",
"name": "GCP EKM Config",
"workload_identity_project_number": "123456789012",
"workload_identity_pool_id": "openai-azure",
"workload_identity_provider_id": "openai-ekm-service-role",
"audience": "<your org id or project id>",
"kms_project_id": "adjective-noun-12345",
"kms_key_name": "openai-kms-key",
"kms_key_ring_name": "openai-kms-key-ring",
"kms_key_location": "us-east1"
}'প্রতিক্রিয়ার নমুনা:
{
"id": "extkey_xxxxxx",
"object": "organization.external_key",
"created_at": 1746174349,
"api_project_ids": [],
"type": "gcp",
"name": "GCP EKM Config",
"workload_identity_project_number": "123456789012",
"kms_key_ring_name": "openai-kms-key-ring",
"kms_key_name": "openai-kms-key",
"kms_key_location": "us-east1",
"audience": "<your org id or project id>",
"kms_project_id": "adjective-noun-12345",
"workload_identity_pool_id": "openai-azure",
"workload_identity_provider_id": "openai-ekm-service-role"
}অ্যাজিউর
অনুরোধের নমুনা:
type: স্ট্রিং - সবসময় “azure”,
name: স্ট্রিং - আপনার কনফিগারেশনের জন্য সহজে চেনা যায় এমন একটি নাম
tenant_id: স্ট্রিং - আপনার অ্যাজিউর টেন্যান্টের ইউইউআইডি
vault_uri: স্ট্রিং - আপনার পরিচালিত মূল কীটি যে অ্যাজিউর ভল্টে রয়েছে, তার ইউআরআই
key_name: স্ট্রিং - অ্যাজিউর কী ভল্টে আপনার পরিচালিত মূল কীটির নাম.
এটি অবশ্যই <org-xxx>--<any_name> বিন্যাসে হতে হবে
এখানে org-xxx হলো আপনার OpenAI অর্গানাইজেশন আইডি, যা https://platform.openai.com/settings/organization/general-এ পাবেন
curl -X POST \
-H "Content-type: application/json" \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/external_keys" \
-d '{
"type": "azure",
"name": "Azure EKM Config",
"tenant_id": "<UUID>",
"vault_uri": "https://<VAULT_NAME>.vault.azure.net/",
"key_name": "org-xxx--some-key"
}'প্রতিক্রিয়ার নমুনা:
{
"id": "extkey_xxxx",
"object": "organization.external_key",
"created_at": 1746174377,
"api_project_ids": [],
"type": "azure",
"name": "Azure EKM Config",
"tenant_id": "<UUID>",
"vault_uri": "https://<VAULT_NAME>.vault.azure.net/",
"key_name": "org-xxx--some-key"
}আপনার প্রতিষ্ঠানে নিবন্ধিত একটি বাহ্যিক কী মুছে ফেলুন
মনে রাখবেন: কোনো বাহ্যিক কী কেবল তখনই মুছে ফেলতে পারবেন, যখন সেটি কোনো সক্রিয় এপিআই প্রকল্প বা ওয়ার্কস্পেসের সঙ্গে যুক্ত নয়. সেটি কোনো সক্রিয় এপিআই প্রকল্পের সঙ্গে যুক্ত থাকলে প্রথমে সেই প্রকল্পটি আর্কাইভ করুন. সেটি কোনো ওয়ার্কস্পেসের সঙ্গে যুক্ত থাকলে কীটি মুছে ফেলা যাবে না.
অনুরোধের নমুনা
curl -X DELETE \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/external_keys/extkey_xxxx"প্রতিক্রিয়ার নমুনা
{
"id": "extkey_xxxxx",
"object": "organization.external_key.deleted",
"created_at": 1746127808,
"api_project_ids": [],
"type": "aws",
"account_number": "123456789012",
"kms_arn": "arn:aws:kms:<REGION>:<ACCOUNT_NUMBER>:key/<UUID>",
"name": "AWS EKM Config",
"role_arn": "arn:aws:iam::<ACCOUNT_NUMBER>:role/<ROLE>"
}আপনার প্রতিষ্ঠানে নিবন্ধিত বাহ্যিক কীগুলো পান
অনুরোধের নমুনা
curl -X GET \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/external_keys"প্রতিক্রিয়ার নমুনা
{
"object": "list",
"data": [
{
"id": "extkey_xxxx",
"object": "organization.external_key",
"created_at": 1746127808,
"api_project_ids": [],
"type": "aws",
"name": "AWS EKM Config",
"account_number": "123456789012",
"kms_arn": "arn:aws:kms:<REGION>:<ACCOUNT_NUMBER>:key/<UUID>",
"role_arn": "arn:aws:iam::<ACCOUNT_NUMBER>:role/<ROLE>"
}
],
"first_id": "extkey_xxxx",
"has_more": false,
"last_id": "extkey_xxxx"
}একটি বাহ্যিক কী-এর বৈধতা যাচাই করুন
এই এন্ডপয়েন্ট ব্যবহার করে কয়েকটি বিষয় যাচাই করতে পারবেন:
পরিবর্তন করার পরও আপনার বাহ্যিক ক্লাউড কনফিগারেশন OpenAI-এর সঙ্গে ব্যবহারের জন্য বৈধ আছে কি না (সফলতা নির্দেশক প্রতিক্রিয়া দেখতে পাবেন).
আপনার কী প্রত্যাহার সঠিকভাবে হয়েছে কি না, OpenAI তা প্রক্রিয়া করছে কি না এবং ক্যাশের ১ ঘণ্টার মেয়াদ শেষ হলে তা কার্যকর হবে কি না (ত্রুটি নির্দেশক প্রতিক্রিয়া দেখতে পাবেন).
অনুরোধের নমুনা
curl -X POST -H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/external_keys/extkey_xxx/validate"প্রতিক্রিয়ার নমুনা
{
"status": "success"
}অথবা, ক্লাউড প্রদানকারীর পক্ষ থেকে একটি ত্রুটি দেখা গেছে.
প্রজেক্ট-স্তরের endpoints
বাহ্যিক কী আইডি দিয়ে একটি নতুন প্রকল্প তৈরি করুন
এটি বিদ্যমান প্রকল্প তৈরির এন্ডপয়েন্টের মতোই, শুধু অনুরোধ ও প্রতিক্রিয়ায় external_key_id প্যারামিটার যোগ করা হয়েছে.
অনুরোধের নমুনা
curl -X POST \
-H "Content-type: application/json" \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/projects" \
-d '{
"name": "Some Project",
"external_key_id": "extkey_xxxx"
}'প্রতিক্রিয়ার নমুনা
{
"object": "organization.project",
"id": "proj_xxxxx",
"name": "Some Project",
"external_key_id": "extkey_xxxx",
"created_at": 1740012721,
"archived_at": null,
"status": "active"
}[সীমিত প্রবেশাধিকার] বাহ্যিক কী আইডি দিয়ে একটি বিদ্যমান প্রকল্প হালনাগাদ করুন
এটি বিদ্যমান প্রকল্প হালনাগাদের এন্ডপয়েন্টের মতোই, শুধু অনুরোধ ও প্রতিক্রিয়ায় external_key_id প্যারামিটার যোগ করা হয়েছে.
ইকেএম-ভিত্তিক কাজের জন্য আমরা নতুন এপিআই প্রকল্প তৈরি করার পরামর্শ দিই. আপনার বিদ্যমান সব এপিআই প্রকল্পে ইকেএম চাইলে আপনার অ্যাকাউন্ট পরিচালকের সঙ্গে যোগাযোগ করুন. আমরা আপনার জন্য ফিচার ফ্ল্যাগ চালু করে দেব. আপনার বিদ্যমান উৎপাদন পরিবেশের প্রকল্পগুলোতে ইকেএম চালু করার আগে নিচের উত্তম চর্চাগুলো খেয়াল করুন.
উৎপাদন পরিবেশে ব্যবহার করা এপিআইয়ের সব সুবিধা প্রথমে আপনার পরীক্ষামূলক ইকেএম এপিআই প্রকল্পে পরীক্ষা করুন.
উৎপাদন পরিবেশের সব এপিআই প্রকল্পে একসঙ্গে ইকেএম চালু না করে ধাপে ধাপে চালু করুন.
অনুরোধের নমুনা
curl -X POST \
-H "Content-type: application/json" \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/projects/proj_xxx" \
-d '{
"external_key_id": "extkey_xxxx"
}'আপনার প্রতিষ্ঠানের সব প্রকল্পের তালিকা পান
এটি বিদ্যমান এন্ডপয়েন্টের মতোই, শুধু এপিআইয়ের প্রতিক্রিয়ায় external_key_id যোগ করা হয়েছে.
অনুরোধের নমুনা
curl -X GET \
-H "Authorization: Bearer $TOKEN" \
"https://api.openai.com/v1/organization/projects"প্রতিক্রিয়ার নমুনা
{
"object": "list",
"data": [
{
"object": "organization.project",
"id": "proj_xxxx",
"name": "Project Name",
"external_key_id": "extkey_xxxx",
"created_at": 1717798982,
"archived_at": null,
"status": "active"
}
],
"first_id": "proj_xxxx",
"last_id": "proj_xxxx",
"has_more": true
}