Checks Guardrails API এখন ব্যক্তিগত পূর্বরূপ আলফা সংস্করণে উপলব্ধ। আমাদের আগ্রহের ফর্ম ব্যবহার করে ব্যক্তিগত পূর্বরূপ অ্যাক্সেসের জন্য অনুরোধ করুন।
Guardrails API হল একটি API যা আপনাকে পাঠ্যটি সম্ভাব্য ক্ষতিকারক বা অনিরাপদ কিনা তা পরীক্ষা করতে দেয়। আপনার ব্যবহারকারীদের সম্ভাব্য ক্ষতিকারক বিষয়বস্তুর সংস্পর্শে আসা থেকে বিরত রাখতে আপনি আপনার GenAI অ্যাপ্লিকেশনে এই API ব্যবহার করতে পারেন।
কিভাবে Guardrails ব্যবহার করবেন?
আপনার নীতি লঙ্ঘন করে এমন পাঠ্যের উপস্থিতি সনাক্ত করতে এবং হ্রাস করতে আপনার জেনারেল এআই ইনপুট এবং আউটপুটগুলিতে চেক গার্ডেল ব্যবহার করুন।
কেন Guardrails ব্যবহার?
এলএলএম কখনও কখনও সম্ভাব্য ক্ষতিকারক বা অনুপযুক্ত সামগ্রী তৈরি করতে পারে। আপনার GenAI অ্যাপ্লিকেশনে Guardrails API একত্রিত করা বড় ভাষা মডেলের (LLMs) দায়িত্বশীল এবং নিরাপদ ব্যবহার নিশ্চিত করার জন্য অত্যন্ত গুরুত্বপূর্ণ। এটি আপনাকে অনুপযুক্ত ভাষা, বৈষম্যমূলক মন্তব্য এবং ক্ষতির সুবিধা দিতে পারে এমন বিষয়বস্তু সহ সম্ভাব্য ক্ষতিকারক আউটপুটগুলির একটি বিস্তৃত পরিসর ফিল্টার করে জেনারেট করা সামগ্রীর সাথে সম্পর্কিত ঝুঁকিগুলি হ্রাস করতে সহায়তা করে৷ এটি শুধুমাত্র আপনার ব্যবহারকারীদের রক্ষা করে না বরং আপনার অ্যাপ্লিকেশনের খ্যাতিও রক্ষা করে এবং আপনার দর্শকদের মধ্যে আস্থা বাড়ায়। নিরাপত্তা এবং দায়িত্বকে অগ্রাধিকার দিয়ে, গার্ডেল আপনাকে GenAI অ্যাপ্লিকেশন তৈরি করার ক্ষমতা দেয় যা উদ্ভাবনী এবং নিরাপদ উভয়ই।
শুরু হচ্ছে
এই নির্দেশিকা আপনার অ্যাপ্লিকেশনে অনুপযুক্ত বিষয়বস্তু সনাক্ত এবং ফিল্টার করতে Guardrails API ব্যবহার করার জন্য নির্দেশাবলী প্রদান করে৷ API বিভিন্ন ধরনের প্রাক-প্রশিক্ষিত নীতি অফার করে যা বিভিন্ন ধরনের সম্ভাব্য ক্ষতিকারক বিষয়বস্তু যেমন ঘৃণাত্মক বক্তব্য, সহিংসতা এবং যৌনতাপূর্ণ বিষয়বস্তু শনাক্ত করতে পারে। আপনি প্রতিটি নীতির জন্য থ্রেশহোল্ড সেট করে API-এর আচরণ কাস্টমাইজ করতে পারেন।
পূর্বশর্ত
- চেক এআই সেফটি প্রাইভেট প্রিভিউ-এর জন্য আপনার Google ক্লাউড প্রজেক্ট অনুমোদন করুন। আপনি যদি ইতিমধ্যে না করে থাকেন, আমাদের আগ্রহের ফর্ম ব্যবহার করে অ্যাক্সেসের জন্য অনুরোধ করুন৷
- চেক API সক্ষম করুন।
- নিশ্চিত করুন যে আপনি আমাদের অনুমোদন গাইড ব্যবহার করে অনুমোদিত অনুরোধ পাঠাতে সক্ষম।
সমর্থিত নীতি
নীতির নাম | নীতির বর্ণনা | নীতির ধরন API Enum মান |
---|---|---|
বিপজ্জনক বিষয়বস্তু | এমন সামগ্রী যা ক্ষতিকারক পণ্য, পরিষেবা এবং ক্রিয়াকলাপগুলিতে অ্যাক্সেসের সুবিধা দেয়, প্রচার করে বা সক্ষম করে৷ | 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 টুল ব্যবহার করে।
আপনার Google ক্লাউড প্রকল্প আইডি দিয়ে 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"
}
]
}
কেস ব্যবহার করুন
আপনার নির্দিষ্ট চাহিদা এবং ঝুঁকি সহনশীলতার উপর নির্ভর করে Guardrails API আপনার LLM অ্যাপ্লিকেশনে বিভিন্ন উপায়ে একত্রিত করা যেতে পারে। এখানে সাধারণ ব্যবহারের ক্ষেত্রে কয়েকটি উদাহরণ রয়েছে:
কোন গার্ডেল হস্তক্ষেপ - লগিং
এই পরিস্থিতিতে, অ্যাপের আচরণে কোনো পরিবর্তন ছাড়াই গার্ডেল API ব্যবহার করা হয়। যাইহোক, নিরীক্ষণ এবং নিরীক্ষার উদ্দেশ্যে সম্ভাব্য নীতি লঙ্ঘনগুলি লগ করা হচ্ছে৷ এই তথ্যটি আরও সম্ভাব্য LLM নিরাপত্তা ঝুঁকি চিহ্নিত করতে ব্যবহার করা যেতে পারে।
পাইথন
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)
}
একটি নীতির ভিত্তিতে গার্ডেল অবরুদ্ধ
এই উদাহরণে, Guardrails API অনিরাপদ ব্যবহারকারী ইনপুট এবং মডেল প্রতিক্রিয়া ব্লক করে। এটি উভয়ই পূর্বনির্ধারিত নিরাপত্তা নীতির বিরুদ্ধে পরীক্ষা করে (যেমন, ঘৃণাত্মক বক্তব্য, বিপজ্জনক বিষয়বস্তু)। এটি AI-কে সম্ভাব্য ক্ষতিকারক আউটপুট তৈরি করতে বাধা দেয় এবং ব্যবহারকারীদের অনুপযুক্ত সামগ্রীর সম্মুখীন হতে রক্ষা করে।
পাইথন
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-তে আউটপুট স্ট্রিম করি। এটি ব্যবহারকারীর অনুভূত লেটেন্সি কম করতে ব্যবহার করা যেতে পারে। এই পদ্ধতিটি অসম্পূর্ণ প্রসঙ্গের কারণে মিথ্যা ইতিবাচক পরিচয় দিতে পারে, তাই এটি গুরুত্বপূর্ণ যে 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
}
}
}
}
FAQ
আমি যদি Guardrails API-এর জন্য আমার কোটা সীমাতে পৌঁছে যাই তাহলে আমার কী করা উচিত?
একটি কোটা বৃদ্ধির অনুরোধ করতে, আপনার অনুরোধ সহ checks-support@google.com এ ইমেল করুন। আপনার ইমেলে নিম্নলিখিত তথ্য অন্তর্ভুক্ত করুন:
- আপনার Google ক্লাউড প্রকল্প নম্বর: এটি আমাদের দ্রুত আপনার অ্যাকাউন্ট সনাক্ত করতে সাহায্য করে৷
- আপনার ব্যবহারের ক্ষেত্রে বিশদ বিবরণ: আপনি কিভাবে Guardrails API ব্যবহার করছেন তা ব্যাখ্যা করুন।
- কাঙ্ক্ষিত কোটার পরিমাণ: আপনার কত অতিরিক্ত কোটা প্রয়োজন তা উল্লেখ করুন।