চেকস গার্ডরেলস এপিআই এখন প্রাইভেট প্রিভিউতে আলফা সংস্করণে উপলব্ধ। আমাদের আগ্রহ ফর্মটি ব্যবহার করে প্রাইভেট প্রিভিউতে অ্যাক্সেসের জন্য অনুরোধ করুন।
গার্ডরেইলস এপিআই হলো এমন একটি এপিআই যা দিয়ে কোনো টেক্সট সম্ভাব্য ক্ষতিকর বা অনিরাপদ কিনা তা যাচাই করা যায়। আপনার ব্যবহারকারীদের সম্ভাব্য ক্ষতিকর কন্টেন্টের সংস্পর্শ থেকে রক্ষা করতে আপনি আপনার GenAI অ্যাপ্লিকেশনে এই এপিআইটি ব্যবহার করতে পারেন।
গার্ডরেল কীভাবে ব্যবহার করবেন?
আপনার নীতিমালা লঙ্ঘনকারী টেক্সটের উপস্থিতি শনাক্ত ও প্রশমিত করতে আপনার জেন এআই ইনপুট এবং আউটপুটে চেক্স গার্ডরেলস ব্যবহার করুন।

গার্ডরেল কেন ব্যবহার করবেন?
এলএলএম (LLM) মাঝে মাঝে সম্ভাব্য ক্ষতিকর বা অনুপযুক্ত কন্টেন্ট তৈরি করতে পারে। লার্জ ল্যাঙ্গুয়েজ মডেল (এলএলএম)-এর দায়িত্বশীল ও নিরাপদ ব্যবহার নিশ্চিত করার জন্য আপনার GenAI অ্যাপ্লিকেশনে Guardrails API ইন্টিগ্রেট করা অত্যন্ত গুরুত্বপূর্ণ। এটি অনুপযুক্ত ভাষা, বৈষম্যমূলক মন্তব্য এবং ক্ষতিসাধনে সহায়ক হতে পারে এমন কন্টেন্টসহ বিভিন্ন ধরনের সম্ভাব্য ক্ষতিকর আউটপুট ফিল্টার করে, যার মাধ্যমে তৈরি হওয়া কন্টেন্টের সাথে সম্পর্কিত ঝুঁকি কমাতে সাহায্য করে। এটি কেবল আপনার ব্যবহারকারীদেরই সুরক্ষা দেয় না, বরং আপনার অ্যাপ্লিকেশনের সুনামও রক্ষা করে এবং আপনার দর্শকদের মধ্যে আস্থা তৈরি করে। নিরাপত্তা ও দায়িত্ববোধকে অগ্রাধিকার দিয়ে, Guardrails আপনাকে এমন GenAI অ্যাপ্লিকেশন তৈরি করতে সক্ষম করে যা একই সাথে উদ্ভাবনী এবং নিরাপদ।
শুরু করা হচ্ছে
এই নির্দেশিকাটি আপনার অ্যাপ্লিকেশনগুলিতে অনুপযুক্ত বিষয়বস্তু সনাক্ত এবং ফিল্টার করার জন্য গার্ডরেইলস এপিআই (Guardrails API) ব্যবহারের নির্দেশনা প্রদান করে। এই এপিআই-তে বিভিন্ন ধরনের পূর্ব-প্রশিক্ষিত পলিসি (pre-trained policies) রয়েছে যা বিভিন্ন ধরণের সম্ভাব্য ক্ষতিকারক বিষয়বস্তু, যেমন বিদ্বেষমূলক বক্তব্য, সহিংসতা এবং যৌনতাপূর্ণ উপাদান সনাক্ত করতে পারে। এছাড়াও আপনি প্রতিটি পলিসির জন্য থ্রেশহোল্ড (thresholds) নির্ধারণ করে এপিআই-এর আচরণ কাস্টমাইজ (customize) করতে পারেন।
পূর্বশর্ত
- আপনার গুগল ক্লাউড প্রজেক্টটি চেক্স এআই সেফটি প্রাইভেট প্রিভিউ-এর জন্য অনুমোদন করিয়ে নিন। যদি এখনও তা না করে থাকেন, তাহলে আমাদের আগ্রহপত্র ব্যবহার করে অ্যাক্সেসের জন্য অনুরোধ করুন।
- চেকস এপিআই সক্রিয় করুন।
- আমাদের অনুমোদন নির্দেশিকা ব্যবহার করে নিশ্চিত করুন যে আপনি অনুমোদিত অনুরোধ পাঠাতে সক্ষম।
সমর্থিত নীতিমালা
| পলিসির নাম | নীতির বিবরণ | পলিসি টাইপ এপিআই এনাম ভ্যালু |
|---|---|---|
| বিপজ্জনক বিষয়বস্তু | এমন বিষয়বস্তু যা ক্ষতিকর পণ্য, পরিষেবা এবং কার্যকলাপে প্রবেশাধিকার সহজ করে, উৎসাহিত করে বা সক্ষম করে তোলে। | DANGEROUS_CONTENT |
| ব্যক্তিগত শনাক্তকরণ তথ্য (PII) অনুরোধ ও আবৃত্তি করা | এমন বিষয়বস্তু যা কোনো ব্যক্তির সংবেদনশীল ব্যক্তিগত তথ্য বা ডেটা সংগ্রহ করে বা প্রকাশ করে। | PII_SOLICITING_RECITING |
| হয়রানি | এমন বিষয়বস্তু যা অন্য কোনো ব্যক্তি বা ব্যক্তিদের প্রতি বিদ্বেষপূর্ণ, ভীতিপ্রদর্শনমূলক, উৎপীড়নমূলক বা অপমানজনক। | HARASSMENT |
| যৌনভাবে স্পষ্ট | যেসব বিষয়বস্তু যৌনতাপূর্ণ। | SEXUALLY_EXPLICIT |
| ঘৃণামূলক বক্তব্য | যেসব বিষয়বস্তু সাধারণত বিদ্বেষমূলক বক্তব্য হিসেবে স্বীকৃত। | HATE_SPEECH |
| চিকিৎসা সংক্রান্ত তথ্য | যেসব বিষয়বস্তু ক্ষতিকর চিকিৎসা সংক্রান্ত পরামর্শ বা নির্দেশনার প্রাপ্তি সহজতর করে, উৎসাহিত করে বা সক্ষম করে, তা নিষিদ্ধ। | MEDICAL_INFO |
| সহিংসতা ও রক্তপাত | এমন বিষয়বস্তু যাতে বাস্তবসম্মত সহিংসতা এবং/অথবা বীভৎসতার অপ্রয়োজনীয় বর্ণনা রয়েছে। | VIOLENCE_AND_GORE |
| অশ্লীলতা ও অশালীনতা | যেসব বিষয়বস্তুতে অশ্লীল, অশালীন বা আপত্তিকর ভাষা রয়েছে, তা নিষিদ্ধ। | OBSCENITY_AND_PROFANITY |
কোড স্নিপেট
পাইথন
pip install google-api-python-client কমান্ডটি চালিয়ে গুগল এপিআই পাইথন ক্লায়েন্ট ইনস্টল করুন।
import logging
from google.oauth2 import service_account
from googleapiclient.discovery import build
SECRET_FILE_PATH = 'path/to/your/secret.json'
credentials = service_account.Credentials.from_service_account_file(
SECRET_FILE_PATH, scopes=['https://www.googleapis.com/auth/checks']
)
service = build('checks', 'v1alpha', credentials=credentials)
request = service.aisafety().classifyContent(
body={
'input': {
'textInput': {
'content': 'Mix, bake, cool, frost, and enjoy.',
'languageCode': 'en',
}
},
'policies': [
{'policyType': 'DANGEROUS_CONTENT'}
], # Default Checks-defined threshold is used
}
)
response = request.execute()
for policy_result in response['policyResults']:
logging.warning(
'Policy: %s, Score: %s, Violation result: %s',
policy_result['policyType'],
policy_result['score'],
policy_result['violationResult'],
)
যান
go get google.golang.org/api/checks/v1alpha কমান্ডটি চালিয়ে চেক্স এপিআই গো ক্লায়েন্ট ইনস্টল করুন।
package main
import (
"context"
"log/slog"
checks "google.golang.org/api/checks/v1alpha"
option "google.golang.org/api/option"
)
const credsFilePath = "path/to/your/secret.json"
func main() {
ctx := context.Background()
checksService, err := checks.NewService(
ctx,
option.WithEndpoint("https://checks.googleapis.com"),
option.WithCredentialsFile(credsFilePath),
option.WithScopes("https://www.googleapis.com/auth/checks"),
)
if err != nil {
// Handle error
}
req := &checks.GoogleChecksAisafetyV1alphaClassifyContentRequest{
Input: &checks.GoogleChecksAisafetyV1alphaClassifyContentRequestInputContent{
TextInput: &checks.GoogleChecksAisafetyV1alphaTextInput{
Content: "Mix, bake, cool, frost, and enjoy.",
LanguageCode: "en",
},
},
Policies: []*checks.GoogleChecksAisafetyV1alphaClassifyContentRequestPolicyConfig{
{PolicyType: "DANGEROUS_CONTENT"}, // Default Checks-defined threshold is used
},
}
classificationResults, err := checksService.Aisafety.ClassifyContent(req).Do()
if err != nil {
// Handle error
}
for _, policy := range classificationResults.PolicyResults {
slog.Info("Checks Guardrails violation: ", "Policy", policy.PolicyType, "Score", policy.Score, "Violation Result", policy.ViolationResult)
}
}
বিশ্রাম
দ্রষ্টব্য: এই উদাহরণটিতে oauth2l CLI টুল ব্যবহার করা হয়েছে।
YOUR_GCP_PROJECT_ID পরিবর্তে আপনার সেই গুগল ক্লাউড প্রজেক্ট আইডিটি দিন, যেটিকে Guardrails API-তে অ্যাক্সেস দেওয়া হয়েছে।
curl -X POST https://checks.googleapis.com/v1alpha/aisafety:classifyContent \
-H "$(oauth2l header --scope cloud-platform,checks)" \
-H "X-Goog-User-Project: YOUR_GCP_PROJECT_ID" \
-H "Content-Type: application/json" \
-d '{
"input": {
"text_input": {
"content": "Mix, bake, cool, frost, and enjoy.",
"language_code": "en"
}
},
"policies": [
{
"policy_type": "HARASSMENT",
"threshold": "0.5"
},
{
"policy_type": "DANGEROUS_CONTENT",
},
]
}'
নমুনা প্রতিক্রিয়া
{
"policyResults": [
{
"policyType": "HARASSMENT",
"score": 0.430,
"violationResult": "NON_VIOLATIVE"
},
{
"policyType": "DANGEROUS_CONTENT",
"score": 0.764,
"violationResult": "VIOLATIVE"
},
{
"policyType": "OBSCENITY_AND_PROFANITY",
"score": 0.876,
"violationResult": "VIOLATIVE"
},
{
"policyType": "SEXUALLY_EXPLICIT",
"score": 0.197,
"violationResult": "NON_VIOLATIVE"
},
{
"policyType": "HATE_SPEECH",
"score": 0.45,
"violationResult": "NON_VIOLATIVE"
},
{
"policyType": "MEDICAL_INFO",
"score": 0.05,
"violationResult": "NON_VIOLATIVE"
},
{
"policyType": "VIOLENCE_AND_GORE",
"score": 0.964,
"violationResult": "VIOLATIVE"
},
{
"policyType": "PII_SOLICITING_RECITING",
"score": 0.0009,
"violationResult": "NON_VIOLATIVE"
}
]
}
ব্যবহারের ক্ষেত্র
আপনার নির্দিষ্ট প্রয়োজন এবং ঝুঁকি সহনশীলতার উপর নির্ভর করে, গার্ডরেইলস এপিআই আপনার এলএলএম অ্যাপ্লিকেশনে বিভিন্ন উপায়ে সংহত করা যেতে পারে। এখানে এর কয়েকটি সাধারণ ব্যবহারের উদাহরণ দেওয়া হলো:
গার্ডরেলের হস্তক্ষেপ ছাড়াই লগিং
এই ক্ষেত্রে, অ্যাপের আচরণে কোনো পরিবর্তন না করেই গার্ডরেইলস এপিআই ব্যবহার করা হয়। তবে, পর্যবেক্ষণ ও নিরীক্ষার উদ্দেশ্যে সম্ভাব্য নীতি লঙ্ঘনের তথ্য লগ করা হচ্ছে। এই তথ্য পরবর্তীতে এলএলএম-এর সম্ভাব্য নিরাপত্তা ঝুঁকি শনাক্ত করতে ব্যবহার করা যেতে পারে।
পাইথন
import logging
from google.oauth2 import service_account
from googleapiclient.discovery import build
# Checks API configuration
class ChecksConfig:
def __init__(self, scope, creds_file_path):
self.scope = scope
self.creds_file_path = creds_file_path
my_checks_config = ChecksConfig(
scope='https://www.googleapis.com/auth/checks',
creds_file_path='path/to/your/secret.json',
)
def new_checks_service(config):
"""Creates a new Checks API service."""
credentials = service_account.Credentials.from_service_account_file(
config.creds_file_path, scopes=[config.scope]
)
service = build('checks', 'v1alpha', credentials=credentials)
return service
def fetch_checks_violation_results(content, context=''):
"""Fetches violation results from the Checks API."""
service = new_checks_service(my_checks_config)
request = service.aisafety().classifyContent(
body={
'context': {'prompt': context},
'input': {
'textInput': {
'content': content,
'languageCode': 'en',
}
},
'policies': [
{'policyType': 'DANGEROUS_CONTENT'},
{'policyType': 'HATE_SPEECH'},
# ... add more policies
],
}
)
response = request.execute()
return response
def fetch_user_prompt():
"""Imitates retrieving the input prompt from the user."""
return 'How do I bake a cake?'
def fetch_llm_response(prompt):
"""Imitates the call to an LLM endpoint."""
return 'Mix, bake, cool, frost, enjoy.'
def log_violations(content, context=''):
"""Checks if the content has any policy violations."""
classification_results = fetch_checks_violation_results(content, context)
for policy_result in classification_results['policyResults']:
if policy_result['violationResult'] == 'VIOLATIVE':
logging.warning(
'Policy: %s, Score: %s, Violation result: %s',
policy_result['policyType'],
policy_result['score'],
policy_result['violationResult'],
)
return False
if __name__ == '__main__':
user_prompt = fetch_user_prompt()
log_violations(user_prompt)
llm_response = fetch_llm_response(user_prompt)
log_violations(llm_response, user_prompt)
print(llm_response)
যান
package main
import (
"context"
"fmt"
"log/slog"
checks "google.golang.org/api/checks/v1alpha"
option "google.golang.org/api/option"
)
type checksConfig struct {
scope string
credsFilePath string
endpoint string
}
var myChecksConfig = checksConfig{
scope: "https://www.googleapis.com/auth/checks",
credsFilePath: "path/to/your/secret.json",
endpoint: "https://checks.googleapis.com",
}
func newChecksService(ctx context.Context, cfg checksConfig) (*checks.Service, error) {
return checks.NewService(
ctx,
option.WithEndpoint(cfg.endpoint),
option.WithCredentialsFile(cfg.credsFilePath),
option.WithScopes(cfg.scope),
)
}
func fetchChecksViolationResults(ctx context.Context, content string, context string) (*checks.GoogleChecksAisafetyV1alphaClassifyContentResponse, error) {
svc, err := newChecksService(ctx, myChecksConfig)
if err != nil {
return nil, fmt.Errorf("failed to create checks service: %w", err)
}
req := &checks.GoogleChecksAisafetyV1alphaClassifyContentRequest{
Context: &checks.GoogleChecksAisafetyV1alphaClassifyContentRequestContext{
Prompt: context,
},
Input: &checks.GoogleChecksAisafetyV1alphaClassifyContentRequestInputContent{
TextInput: &checks.GoogleChecksAisafetyV1alphaTextInput{
Content: content,
LanguageCode: "en",
},
},
Policies: []*checks.GoogleChecksAisafetyV1alphaClassifyContentRequestPolicyConfig{
{PolicyType: "DANGEROUS_CONTENT"},
{PolicyType: "HATE_SPEECH"},
// ... add more policies
},
}
response, err := svc.Aisafety.ClassifyContent(req).Do()
if err != nil {
return nil, fmt.Errorf("failed to classify content: %w", err)
}
return response, nil
}
// Imitates retrieving the input prompt from the user.
func fetchUserPrompt() string {
return "How do I bake a cake?"
}
// Imitates the call to an LLM endpoint.
func fetchLLMResponse(prompt string) string {
return "Mix, bake, cool, frost, enjoy."
}
func logViolations(ctx context.Context, content string, context string) error {
classificationResults, err := fetchChecksViolationResults(ctx, content, context)
if err != nil {
return err
}
for _, policyResult := range classificationResults.PolicyResults {
if policyResult.ViolationResult == "VIOLATIVE" {
slog.Warn("Checks Guardrails violation: ", "Policy", policyResult.PolicyType, "Score", policyResult.Score, "Violation Result", policyResult.ViolationResult)
}
}
return nil
}
func main() {
ctx := context.Background()
userPrompt := fetchUserPrompt()
err := logViolations(ctx, userPrompt, "")
if err != nil {
// Handle error
}
llmResponse := fetchLLMResponse(userPrompt)
err = logViolations(ctx, llmResponse, userPrompt)
if err != nil {
// Handle error
}
fmt.Println(llmResponse)
}
একটি নীতির ভিত্তিতে গার্ডরেল অবরুদ্ধ করা হয়েছে।
এই উদাহরণে, গার্ডরেইলস এপিআই অনিরাপদ ব্যবহারকারীর ইনপুট এবং মডেলের প্রতিক্রিয়া ব্লক করে। এটি পূর্বনির্ধারিত সুরক্ষা নীতিমালার (যেমন, বিদ্বেষমূলক বক্তব্য, বিপজ্জনক বিষয়বস্তু) সাথে উভয়কেই যাচাই করে। এটি এআই-কে সম্ভাব্য ক্ষতিকর আউটপুট তৈরি করা থেকে বিরত রাখে এবং ব্যবহারকারীদের অনুপযুক্ত বিষয়বস্তুর সম্মুখীন হওয়া থেকে রক্ষা করে।
পাইথন
from google.oauth2 import service_account
from googleapiclient.discovery import build
# Checks API configuration
class ChecksConfig:
def __init__(self, scope, creds_file_path, default_threshold):
self.scope = scope
self.creds_file_path = creds_file_path
self.default_threshold = default_threshold
my_checks_config = ChecksConfig(
scope='https://www.googleapis.com/auth/checks',
creds_file_path='path/to/your/secret.json',
default_threshold=0.6,
)
def new_checks_service(config):
"""Creates a new Checks API service."""
credentials = service_account.Credentials.from_service_account_file(
config.creds_file_path, scopes=[config.scope]
)
service = build('checks', 'v1alpha', credentials=credentials)
return service
def fetch_checks_violation_results(content, context=''):
"""Fetches violation results from the Checks API."""
service = new_checks_service(my_checks_config)
request = service.aisafety().classifyContent(
body={
'context': {'prompt': context},
'input': {
'textInput': {
'content': content,
'languageCode': 'en',
}
},
'policies': [
{
'policyType': 'DANGEROUS_CONTENT',
'threshold': my_checks_config.default_threshold,
},
{'policyType': 'HATE_SPEECH'},
# ... add more policies
],
}
)
response = request.execute()
return response
def fetch_user_prompt():
"""Imitates retrieving the input prompt from the user."""
return 'How do I bake a cake?'
def fetch_llm_response(prompt):
"""Imitates the call to an LLM endpoint."""
return 'Mix, bake, cool, frost, enjoy.'
def has_violations(content, context=''):
"""Checks if the content has any policy violations."""
classification_results = fetch_checks_violation_results(content, context)
for policy_result in classification_results['policyResults']:
if policy_result['violationResult'] == 'VIOLATIVE':
return True
return False
if __name__ == '__main__':
user_prompt = fetch_user_prompt()
if has_violations(user_prompt):
print("Sorry, I can't help you with this request.")
else:
llm_response = fetch_llm_response(user_prompt)
if has_violations(llm_response, user_prompt):
print("Sorry, I can't help you with this request.")
else:
print(llm_response)
যান
package main
import (
"context"
"fmt"
checks "google.golang.org/api/checks/v1alpha"
option "google.golang.org/api/option"
)
type checksConfig struct {
scope string
credsFilePath string
endpoint string
defaultThreshold float64
}
var myChecksConfig = checksConfig{
scope: "https://www.googleapis.com/auth/checks",
credsFilePath: "path/to/your/secret.json",
endpoint: "https://checks.googleapis.com",
defaultThreshold: 0.6,
}
func newChecksService(ctx context.Context, cfg checksConfig) (*checks.Service, error) {
return checks.NewService(
ctx,
option.WithEndpoint(cfg.endpoint),
option.WithCredentialsFile(cfg.credsFilePath),
option.WithScopes(cfg.scope),
)
}
func fetchChecksViolationResults(ctx context.Context, content string, context string) (*checks.GoogleChecksAisafetyV1alphaClassifyContentResponse, error) {
svc, err := newChecksService(ctx, myChecksConfig)
if err != nil {
return nil, fmt.Errorf("failed to create checks service: %w", err)
}
req := &checks.GoogleChecksAisafetyV1alphaClassifyContentRequest{
Context: &checks.GoogleChecksAisafetyV1alphaClassifyContentRequestContext{
Prompt: context,
},
Input: &checks.GoogleChecksAisafetyV1alphaClassifyContentRequestInputContent{
TextInput: &checks.GoogleChecksAisafetyV1alphaTextInput{
Content: content,
LanguageCode: "en",
},
},
Policies: []*checks.GoogleChecksAisafetyV1alphaClassifyContentRequestPolicyConfig{
{PolicyType: "DANGEROUS_CONTENT", Threshold: myChecksConfig.defaultThreshold},
{PolicyType: "HATE_SPEECH"}, // default Checks-defined threshold is used
// ... add more policies
},
}
response, err := svc.Aisafety.ClassifyContent(req).Do()
if err != nil {
return nil, fmt.Errorf("failed to classify content: %w", err)
}
return response, nil
}
// Imitates retrieving the input prompt from the user.
func fetchUserPrompt() string {
return "How do I bake a cake?"
}
// Imitates the call to an LLM endpoint.
func fetchLLMResponse(prompt string) string {
return "Mix, bake, cool, frost, enjoy."
}
func hasViolations(ctx context.Context, content string, context string) (bool, error) {
classificationResults, err := fetchChecksViolationResults(ctx, content, context)
if err != nil {
return false, fmt.Errorf("failed to classify content: %w", err)
}
for _, policyResult := range classificationResults.PolicyResults {
if policyResult.ViolationResult == "VIOLATIVE" {
return true, nil
}
}
return false, nil
}
func main() {
ctx := context.Background()
userPrompt := fetchUserPrompt()
hasInputViolations, err := hasViolations(ctx, userPrompt, "")
if err == nil && hasInputViolations {
fmt.Println("Sorry, I can't help you with this request.")
return
}
llmResponse := fetchLLMResponse(userPrompt)
hasOutputViolations, err := hasViolations(ctx, llmResponse, userPrompt)
if err == nil && hasOutputViolations {
fmt.Println("Sorry, I can't help you with this request.")
return
}
fmt.Println(llmResponse)
}
গার্ডরেলগুলিতে এলএলএম আউটপুট স্ট্রিম করুন
নিম্নলিখিত উদাহরণগুলিতে, আমরা একটি LLM থেকে Guardrails API-তে আউটপুট স্ট্রিম করি। এটি ব্যবহারকারীর অনুভূত লেটেন্সি কমাতে ব্যবহার করা যেতে পারে। এই পদ্ধতিটি অসম্পূর্ণ কনটেক্সটের কারণে ফলস পজিটিভ তৈরি করতে পারে, তাই API কল করার আগে Guardrails-এর সঠিক মূল্যায়নের জন্য LLM আউটপুটে পর্যাপ্ত কনটেক্সট থাকা গুরুত্বপূর্ণ।
সিঙ্ক্রোনাস গার্ডরেল কল
পাইথন
if __name__ == '__main__':
user_prompt = fetch_user_prompt()
my_llm_model = MockModel(
user_prompt, fetch_llm_response(user_prompt)
)
llm_response = ""
chunk = ""
# Minimum number of LLM chunks needed before we will call Guardrails.
contextThreshold = 2
while not my_llm_model.finished:
chunk = my_llm_model.next_chunk()
llm_response += str(chunk)
if my_llm_model.chunkCounter > contextThreshold:
log_violations(llm_response, my_llm_model.userPrompt)
যান
func main() {
ctx := context.Background()
model := mockModel{
userPrompt: "It's a sunny day and you want to buy ice cream.",
response: []string{"What a lovely day", "to get some ice cream.", "is the shop open?"},
}
// Minimum number of LLM chunks needed before we will call Guardrails.
const contextThreshold = 2
var llmResponse string
for !model.finished {
chunk := model.nextChunk()
llmResponse += chunk + " "
if model.chunkCounter > contextThreshold {
err = logViolations(ctx, llmResponse, model.userPrompt)
if err != nil {
// Handle error
}
}
}
}
অ্যাসিঙ্ক্রোনাস গার্ডরেল কল
পাইথন
async def main():
user_prompt = fetch_user_prompt()
my_llm_model = MockModel(
user_prompt, fetch_llm_response(user_prompt)
)
llm_response = ""
chunk = ""
# Minimum number of LLM chunks needed before we will call Guardrails.
contextThreshold = 2
async for chunk in my_llm_model:
llm_response += str(chunk)
if my_llm_model.chunkCounter > contextThreshold:
log_violations(llm_response, my_llm_model.userPrompt)
asyncio.run(main())
যান
func main() {
var textChannel = make(chan string)
model := mockModel{
userPrompt: "It's a sunny day and you want to buy ice cream.",
response: []string{"What a lovely day", "to get some ice cream.", "is the shop open?"},
}
var llmResponse string
// Minimum number of LLM chunks needed before we will call Guardrails.
const contextThreshold = 2
go model.streamToChannel(textChannel)
for text := range textChannel {
llmResponse += text + " "
if model.chunkCounter > contextThreshold {
err = logViolations(ctx, llmResponse, model.userPrompt)
if err != nil {
// Handle error
}
}
}
}
প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী
Guardrails API-এর কোটা সীমায় পৌঁছে গেলে আমার কী করা উচিত?
কোটা বৃদ্ধির অনুরোধ জানাতে, আপনার অনুরোধটি checks-support@google.com-এ ইমেল করুন। আপনার ইমেলে নিম্নলিখিত তথ্যগুলো অন্তর্ভুক্ত করুন:
- আপনার গুগল ক্লাউড প্রজেক্ট নম্বর: এটি আমাদের আপনার অ্যাকাউন্ট দ্রুত শনাক্ত করতে সাহায্য করে।
- আপনার ব্যবহারের ক্ষেত্র সম্পর্কে বিস্তারিত: আপনি কীভাবে Guardrails API ব্যবহার করছেন তা ব্যাখ্যা করুন।
- কাঙ্ক্ষিত কোটার পরিমাণ: আপনার কী পরিমাণ অতিরিক্ত কোটা প্রয়োজন তা উল্লেখ করুন।