Using files

জেমিনি এপিআই প্রম্পট ইনপুট থেকে আলাদাভাবে মিডিয়া ফাইল আপলোড করার সুবিধা প্রদান করে, যার ফলে আপনার মিডিয়া একাধিক অনুরোধ এবং একাধিক প্রম্পটে পুনঃব্যবহার করা সম্ভব হয়। আরও বিস্তারিত জানার জন্য, প্রম্পটিং উইথ মিডিয়া গাইডটি দেখুন।

পদ্ধতি: মিডিয়া.আপলোড

একটি ragStore-এ ডেটা আপলোড করে, একটি RagStore ডকুমেন্টে সংরক্ষণ করার আগে প্রি-প্রসেস এবং খণ্ডগুলি তৈরি করে।

শেষবিন্দু

  • মিডিয়া আপলোড অনুরোধের জন্য URI আপলোড করুন:
  • পোস্ট https: / /generativelanguage.googleapis.com /upload /v1beta /{ragStoreName=ragStores /*}:uploadToRagStore
  • মেটাডেটা-শুধুমাত্র অনুরোধের জন্য মেটাডেটা URI:
  • পোস্ট https: / /generativelanguage.googleapis.com /v1beta /{ragStoreName=ragStores /*}:uploadToRagStore

    পথের পরামিতি

    ragStoreName string

    প্রয়োজনীয়। অপরিবর্তনীয়। ফাইলটি যে RagStore এ আপলোড করতে হবে তার নাম। উদাহরণ: ragStores/my-rag-store-123 এটি ragStores/{ragstore} রূপ নেয়।

    অনুরোধের মূল অংশ

    অনুরোধের মূল অংশে নিম্নলিখিত কাঠামো সহ ডেটা রয়েছে:

    ক্ষেত্র
    displayName string

    ঐচ্ছিক। তৈরি নথির নাম প্রদর্শন করুন।

    customMetadata[] object ( CustomMetadata )

    ডেটার সাথে যুক্ত করার জন্য কাস্টম মেটাডেটা।

    chunkingConfig object ( ChunkingConfig )

    ঐচ্ছিক। পরিষেবাকে ডেটা কীভাবে ভাগ করতে হবে তা বলার জন্য কনফিগারেশন। যদি সরবরাহ না করা হয়, তবে পরিষেবাটি ডিফল্ট প্যারামিটার ব্যবহার করবে।

    mimeType string

    ঐচ্ছিক। ডেটার MIME ধরণ। যদি সরবরাহ না করা হয়, তাহলে আপলোড করা সামগ্রী থেকে এটি অনুমান করা হবে।

    প্রতিক্রিয়া মূল অংশ

    এটি google.longrunning.Operation এর একটি কপি। আমাদের এটি কপি করতে হবে কারণ scotty এর সাথে ইন্টারঅ্যাক্ট করার জন্য, আমাদের একটি scotty নির্দিষ্ট ক্ষেত্র যোগ করতে হবে যা শীর্ষ স্তরের অপারেশন প্রোটোতে যোগ করা যাবে না।

    যদি সফল হয়, তাহলে রেসপন্স বডিতে নিম্নলিখিত কাঠামো সহ ডেটা থাকবে:

    ক্ষেত্র
    name string

    সার্ভার-নির্ধারিত নাম, যা শুধুমাত্র সেই একই পরিষেবার মধ্যে অনন্য যা মূলত এটি প্রদান করে। যদি আপনি ডিফল্ট HTTP ম্যাপিং ব্যবহার করেন, name একটি রিসোর্স নাম হওয়া উচিত যার শেষে operations/{unique_id} থাকবে।

    metadata object

    অপারেশনের সাথে সম্পর্কিত পরিষেবা-নির্দিষ্ট মেটাডেটা। এতে সাধারণত অগ্রগতির তথ্য এবং তৈরির সময় এর মতো সাধারণ মেটাডেটা থাকে। কিছু পরিষেবা এই ধরনের মেটাডেটা প্রদান নাও করতে পারে। দীর্ঘমেয়াদী অপারেশন ফেরত দেয় এমন যেকোনো পদ্ধতিতে মেটাডেটার ধরণ, যদি থাকে, তা নথিভুক্ত করা উচিত।

    একটি অবজেক্টে একটি নির্দিষ্ট ধরণের ফিল্ড রয়েছে। একটি অতিরিক্ত ফিল্ড "@type" এ একটি URI রয়েছে যা টাইপটি সনাক্ত করে। উদাহরণ: { "id": 1234, "@type": "types.example.com/standard/id" }

    boolean done

    যদি মানটি false হয়, তাহলে এর অর্থ হল অপারেশনটি এখনও চলছে। যদি true , তাহলে অপারেশনটি সম্পন্ন হয়েছে, এবং error অথবা response পাওয়া যাবে।

    result Union type
    অপারেশন ফলাফল, যা একটি error বা একটি বৈধ response হতে পারে। যদি done == false , error বা response উভয়ই সেট করা হয় না। যদি done == true , error বা response ঠিক একটি সেট করা যেতে পারে। কিছু পরিষেবা ফলাফল প্রদান নাও করতে পারে। result নিম্নলিখিতগুলির মধ্যে কেবল একটি হতে পারে:
    error object ( Status )

    ব্যর্থতা বা বাতিলকরণের ক্ষেত্রে অপারেশনের ত্রুটির ফলাফল।

    response object

    অপারেশনের স্বাভাবিক, সফল প্রতিক্রিয়া। যদি মূল পদ্ধতিটি সাফল্যের উপর কোনও তথ্য প্রদান না করে, যেমন Delete , তাহলে প্রতিক্রিয়াটি হল google.protobuf.Empty । যদি মূল পদ্ধতিটি স্ট্যান্ডার্ড Get / Create / Update হয়, তাহলে প্রতিক্রিয়াটি রিসোর্স হওয়া উচিত। অন্যান্য পদ্ধতির জন্য, প্রতিক্রিয়াটির ধরণ XxxResponse হওয়া উচিত, যেখানে Xxx হল মূল পদ্ধতির নাম। উদাহরণস্বরূপ, যদি মূল পদ্ধতির নাম TakeSnapshot() হয়, তাহলে অনুমানকৃত প্রতিক্রিয়ার ধরণ হল TakeSnapshotResponse

    একটি অবজেক্টে একটি নির্দিষ্ট ধরণের ফিল্ড রয়েছে। একটি অতিরিক্ত ফিল্ড "@type" এ একটি URI রয়েছে যা টাইপটি সনাক্ত করে। উদাহরণ: { "id": 1234, "@type": "types.example.com/standard/id" }

    JSON উপস্থাপনা
    {
      "name": string,
      "metadata": {
        "@type": string,
        field1: ...,
        ...
      },
      "done": boolean,
    
      // result
      "error": {
        object (Status)
      },
      "response": {
        "@type": string,
        field1: ...,
        ...
      }
      // Union type
    }

    ChunkingConfig সম্পর্কে

    ফাইলটি কীভাবে চাঙ্ক করতে হয় তা পরিষেবাকে বলার জন্য প্যারামিটার। google3/cloud/ai/platform/extension/lib/retrieval/config/chunker_config.proto দ্বারা অনুপ্রাণিত।

    ক্ষেত্র
    config Union type
    ব্যবহার করার জন্য chunking কনফিগারেশন. config নিম্নলিখিতগুলির মধ্যে শুধুমাত্র একটি হতে পারে:
    whiteSpaceConfig object ( WhiteSpaceConfig )

    হোয়াইট স্পেস চাঙ্কিং কনফিগারেশন।

    JSON উপস্থাপনা
    {
    
      // config
      "whiteSpaceConfig": {
        object (WhiteSpaceConfig)
      }
      // Union type
    }

    হোয়াইটস্পেসকনফিগ

    একটি সাদা স্থান চাঙ্কিং অ্যালগরিদমের জন্য কনফিগারেশন [সাদা স্থান সীমাবদ্ধ]।

    ক্ষেত্র
    maxTokensPerChunk integer

    প্রতি অংশে সর্বোচ্চ টোকেনের সংখ্যা। এই চাঙ্কিং অ্যালগরিদমের জন্য টোকেনগুলিকে শব্দ হিসেবে সংজ্ঞায়িত করা হয়েছে। দ্রষ্টব্য: আমরা টোকেনাইজারের আউটপুটের বিপরীতে হোয়াইটস্পেস দ্বারা বিভক্ত শব্দ হিসেবে টোকেনকে সংজ্ঞায়িত করছি। 2025-04-17 তারিখের সর্বশেষ জেমিনি এমবেডিং মডেলের প্রসঙ্গ উইন্ডো বর্তমানে 8192 টোকেন। আমরা ধরে নিচ্ছি যে গড় শব্দ 5 অক্ষর। অতএব, আমরা সর্বোচ্চ সীমা 2**9 নির্ধারণ করেছি, যা 512 শব্দ, অথবা 2560 টোকেন, সবচেয়ে খারাপ ক্ষেত্রে প্রতি টোকেনে একটি অক্ষর ধরে নিচ্ছি। এটি একটি রক্ষণশীল অনুমান যা প্রসঙ্গ উইন্ডো ওভারফ্লো প্রতিরোধ করার জন্য তৈরি।

    maxOverlapTokens integer

    দুটি সংলগ্ন অংশের মধ্যে ওভারল্যাপিং টোকেনের সর্বাধিক সংখ্যা।

    JSON উপস্থাপনা
    {
      "maxTokensPerChunk": integer,
      "maxOverlapTokens": integer
    }

    পদ্ধতি: files.get

    প্রদত্ত File জন্য মেটাডেটা পায়।

    শেষবিন্দু

    https পান https: / /generativelanguage.googleapis.com /v1beta /{name=files /*}

    পথের পরামিতি

    name string

    প্রয়োজনীয়। যে File পেতে হবে তার নাম। উদাহরণ: files/abc-123 এটি files/{file} ফর্মটি নেয়।

    অনুরোধের মূল অংশ

    অনুরোধের মূল অংশটি অবশ্যই খালি থাকতে হবে।

    উদাহরণ অনুরোধ

    পাইথন

    from google import genai
    
    client = genai.Client()
    myfile = client.files.upload(file=media / "poem.txt")
    file_name = myfile.name
    print(file_name)  # "files/*"
    
    myfile = client.files.get(name=file_name)
    print(myfile)

    নোড.জেএস

    // Make sure to include the following import:
    // import {GoogleGenAI} from '@google/genai';
    const ai = new GoogleGenAI({ apiKey: process.env.GEMINI_API_KEY });
    const myfile = await ai.files.upload({
      file: path.join(media, "poem.txt"),
    });
    const fileName = myfile.name;
    console.log(fileName);
    
    const fetchedFile = await ai.files.get({ name: fileName });
    console.log(fetchedFile);

    যাও

    ctx := context.Background()
    client, err := genai.NewClient(ctx, &genai.ClientConfig{
    	APIKey:  os.Getenv("GEMINI_API_KEY"),
    	Backend: genai.BackendGeminiAPI,
    })
    if err != nil {
    	log.Fatal(err)
    }
    myfile, err := client.Files.UploadFromPath(
    	ctx,
    	filepath.Join(getMedia(), "poem.txt"), 
    	&genai.UploadFileConfig{
    		MIMEType: "text/plain",
    	},
    )
    if err != nil {
    	log.Fatal(err)
    }
    fileName := myfile.Name
    fmt.Println(fileName)
    file, err := client.Files.Get(ctx, fileName, nil)
    if err != nil {
    	log.Fatal(err)
    }
    fmt.Println(file)

    শেল

    name=$(jq ".file.name" file_info.json)
    # Get the file of interest to check state
    curl https://generativelanguage.googleapis.com/v1beta/files/$name > file_info.json
    # Print some information about the file you got
    name=$(jq ".file.name" file_info.json)
    echo name=$name
    file_uri=$(jq ".file.uri" file_info.json)
    echo file_uri=$file_uri

    প্রতিক্রিয়া মূল অংশ

    যদি সফল হয়, তাহলে রেসপন্স বডিতে File এর একটি উদাহরণ থাকবে।

    পদ্ধতি: files.list

    অনুরোধকারী প্রকল্পের মালিকানাধীন File মেটাডেটা তালিকাভুক্ত করে।

    শেষবিন্দু

    https: / /generativelanguage.googleapis.com /v1beta /files পান

    কোয়েরি প্যারামিটার

    pageSize integer

    ঐচ্ছিক। প্রতি পৃষ্ঠায় সর্বাধিক কতগুলি File ফেরত পাঠানো যাবে। যদি নির্দিষ্ট না করা থাকে, তাহলে ডিফল্ট সংখ্যা ১০। সর্বাধিক pageSize ১০০।

    pageToken string

    ঐচ্ছিক। পূর্ববর্তী files.list কল থেকে একটি পৃষ্ঠা টোকেন।

    অনুরোধের মূল অংশ

    অনুরোধের মূল অংশটি অবশ্যই খালি থাকতে হবে।

    উদাহরণ অনুরোধ

    পাইথন

    from google import genai
    
    client = genai.Client()
    print("My files:")
    for f in client.files.list():
        print("  ", f.name)

    নোড.জেএস

    // Make sure to include the following import:
    // import {GoogleGenAI} from '@google/genai';
    const ai = new GoogleGenAI({ apiKey: process.env.GEMINI_API_KEY });
    console.log("My files:");
    // Using the pager style to list files
    const pager = await ai.files.list({ config: { pageSize: 10 } });
    let page = pager.page;
    const names = [];
    while (true) {
      for (const f of page) {
        console.log("  ", f.name);
        names.push(f.name);
      }
      if (!pager.hasNextPage()) break;
      page = await pager.nextPage();
    }

    যাও

    ctx := context.Background()
    client, err := genai.NewClient(ctx, &genai.ClientConfig{
    	APIKey:  os.Getenv("GEMINI_API_KEY"),
    	Backend: genai.BackendGeminiAPI,
    })
    if err != nil {
    	log.Fatal(err)
    }
    fmt.Println("My files:")
    page, err := client.Files.List(ctx, nil)
    if err != nil {
    	log.Fatal(err)
    }
    for _, f := range page.Items {
    	fmt.Println("  ", f.Name)
    }

    শেল

    echo "My files: "
    
    curl "https://generativelanguage.googleapis.com/v1beta/files?key=$GEMINI_API_KEY"

    প্রতিক্রিয়া মূল অংশ

    files.list এর জন্য প্রতিক্রিয়া।

    যদি সফল হয়, তাহলে রেসপন্স বডিতে নিম্নলিখিত কাঠামো সহ ডেটা থাকবে:

    ক্ষেত্র
    files[] object ( File )

    File তালিকা।

    nextPageToken string

    একটি টোকেন যা পরবর্তী files.list কলে pageToken হিসেবে পাঠানো যেতে পারে।

    JSON উপস্থাপনা
    {
      "files": [
        {
          object (File)
        }
      ],
      "nextPageToken": string
    }

    পদ্ধতি: files.delete

    File মুছে ফেলে।

    শেষবিন্দু

    https: / /generativelanguage.googleapis.com /v1beta /{name=files /*} মুছে ফেলুন : / /generativelanguage.googleapis.com /v1beta /{name=files /*}

    পথের পরামিতি

    name string

    প্রয়োজনীয়। মুছে ফেলার জন্য File নাম। উদাহরণ: files/abc-123 এটি files/{file} ফর্মটি গ্রহণ করে।

    অনুরোধের মূল অংশ

    অনুরোধের মূল অংশটি অবশ্যই খালি থাকতে হবে।

    উদাহরণ অনুরোধ

    পাইথন

    from google import genai
    
    client = genai.Client()
    myfile = client.files.upload(file=media / "poem.txt")
    
    client.files.delete(name=myfile.name)
    
    try:
        result = client.models.generate_content(
            model="gemini-2.0-flash", contents=[myfile, "Describe this file."]
        )
        print(result)
    except genai.errors.ClientError:
        pass

    নোড.জেএস

    // The Gen AI SDK for TypeScript and JavaScript is in preview.
    // Some features have not been implemented.

    যাও

    ctx := context.Background()
    client, err := genai.NewClient(ctx, &genai.ClientConfig{
    	APIKey:  os.Getenv("GEMINI_API_KEY"),
    	Backend: genai.BackendGeminiAPI,
    })
    if err != nil {
    	log.Fatal(err)
    }
    myfile, err := client.Files.UploadFromPath(
    	ctx, 
    	filepath.Join(getMedia(), "poem.txt"), 
    	&genai.UploadFileConfig{
    		MIMEType: "text/plain",
    	},
    )
    if err != nil {
    	log.Fatal(err)
    }
    // Delete the file.
    _, err = client.Files.Delete(ctx, myfile.Name, nil)
    if err != nil {
    	log.Fatal(err)
    }
    // Attempt to use the deleted file.
    parts := []*genai.Part{
    	genai.NewPartFromURI(myfile.URI, myfile.MIMEType,),
    	genai.NewPartFromText("Describe this file."),
    }
    
    contents := []*genai.Content{
    	genai.NewContentFromParts(parts, genai.RoleUser),
    }
    
    _, err = client.Models.GenerateContent(ctx, "gemini-2.0-flash", contents, nil)
    // Expect an error when using a deleted file.
    if err != nil {
    	return nil
    }
    return fmt.Errorf("expected an error when using deleted file")

    শেল

    curl --request "DELETE" https://generativelanguage.googleapis.com/v1beta/files/$name?key=$GEMINI_API_KEY

    প্রতিক্রিয়া মূল অংশ

    যদি সফল হয়, তাহলে রেসপন্স বডিটি একটি খালি JSON অবজেক্ট হবে।

    REST রিসোর্স: ফাইল

    রিসোর্স: ফাইল

    API তে আপলোড করা একটি ফাইল। পরবর্তী আইডি: ১৫

    ক্ষেত্র
    name string

    অপরিবর্তনীয়। শনাক্তকারী। File রিসোর্সের নাম। আইডি ("files/" উপসর্গ বাদে নাম) তে ৪০টি পর্যন্ত অক্ষর থাকতে পারে যা ছোট হাতের আলফানিউমেরিক বা ড্যাশ (-)। আইডিটি ড্যাশ দিয়ে শুরু বা শেষ হতে পারে না। যদি create-এ নামটি খালি থাকে, তাহলে একটি অনন্য নাম তৈরি হবে। উদাহরণ: files/123-456

    displayName string

    ঐচ্ছিক। File জন্য মানুষের পঠনযোগ্য প্রদর্শন নাম। প্রদর্শন নামটি অবশ্যই ৫১২ অক্ষরের বেশি দৈর্ঘ্যের হতে হবে না, স্পেস সহ। উদাহরণ: "স্বাগতম চিত্র"

    mimeType string

    শুধুমাত্র আউটপুট। ফাইলের MIME ধরণ।

    sizeBytes string ( int64 format)

    শুধুমাত্র আউটপুট। ফাইলের আকার বাইটে।

    createTime string ( Timestamp format)

    শুধুমাত্র আউটপুট। File কখন তৈরি হয়েছিল তার টাইমস্ট্যাম্প।

    RFC 3339 ব্যবহার করে, যেখানে উৎপন্ন আউটপুট সর্বদা Z-স্বাভাবিক হবে এবং 0, 3, 6 অথবা 9 ভগ্নাংশ সংখ্যা ব্যবহার করবে। "Z" ব্যতীত অন্যান্য অফসেটগুলিও গ্রহণযোগ্য। উদাহরণ: "2014-10-02T15:01:23Z" , "2014-10-02T15:01:23.045123456Z" অথবা "2014-10-02T15:01:23+05:30"

    updateTime string ( Timestamp format)

    শুধুমাত্র আউটপুট। File শেষবার কখন আপডেট করা হয়েছিল তার টাইমস্ট্যাম্প।

    RFC 3339 ব্যবহার করে, যেখানে উৎপন্ন আউটপুট সর্বদা Z-স্বাভাবিক হবে এবং 0, 3, 6 অথবা 9 ভগ্নাংশ সংখ্যা ব্যবহার করবে। "Z" ব্যতীত অন্যান্য অফসেটগুলিও গ্রহণযোগ্য। উদাহরণ: "2014-10-02T15:01:23Z" , "2014-10-02T15:01:23.045123456Z" অথবা "2014-10-02T15:01:23+05:30"

    expirationTime string ( Timestamp format)

    শুধুমাত্র আউটপুট। File কখন মুছে ফেলা হবে তার টাইমস্ট্যাম্প। শুধুমাত্র File মেয়াদ শেষ হওয়ার সময় নির্ধারণ করা থাকলেই সেট করুন।

    RFC 3339 ব্যবহার করে, যেখানে উৎপন্ন আউটপুট সর্বদা Z-স্বাভাবিক হবে এবং 0, 3, 6 অথবা 9 ভগ্নাংশ সংখ্যা ব্যবহার করবে। "Z" ব্যতীত অন্যান্য অফসেটগুলিও গ্রহণযোগ্য। উদাহরণ: "2014-10-02T15:01:23Z" , "2014-10-02T15:01:23.045123456Z" অথবা "2014-10-02T15:01:23+05:30"

    sha256Hash string ( bytes format)

    শুধুমাত্র আউটপুট। আপলোড করা বাইটের SHA-256 হ্যাশ।

    একটি base64-এনকোডেড স্ট্রিং।

    uri string

    শুধুমাত্র আউটপুট। File uri।

    downloadUri string

    শুধুমাত্র আউটপুট। File ডাউনলোড ইউআরআই।

    state enum ( State )

    শুধুমাত্র আউটপুট। ফাইলের প্রক্রিয়াকরণ অবস্থা।

    source enum ( Source )

    ফাইলের উৎস।

    error object ( Status )

    শুধুমাত্র আউটপুট। ফাইল প্রক্রিয়াকরণ ব্যর্থ হলে ত্রুটির অবস্থা।

    metadata Union type
    ফাইলের মেটাডেটা। metadata নিম্নলিখিতগুলির মধ্যে কেবল একটি হতে পারে:
    videoMetadata object ( VideoFileMetadata )

    শুধুমাত্র আউটপুট। একটি ভিডিওর মেটাডেটা।

    JSON উপস্থাপনা
    {
      "name": string,
      "displayName": string,
      "mimeType": string,
      "sizeBytes": string,
      "createTime": string,
      "updateTime": string,
      "expirationTime": string,
      "sha256Hash": string,
      "uri": string,
      "downloadUri": string,
      "state": enum (State),
      "source": enum (Source),
      "error": {
        object (Status)
      },
    
      // metadata
      "videoMetadata": {
        object (VideoFileMetadata)
      }
      // Union type
    }

    ভিডিওফাইলমেটাডেটা

    একটি ভিডিও File মেটাডেটা।

    ক্ষেত্র
    videoDuration string ( Duration format)

    ভিডিওটির সময়কাল।

    সেকেন্ডে একটি সময়কাল যার সর্বোচ্চ নয়টি ভগ্নাংশ সংখ্যা ' s ' দিয়ে শেষ হয়। উদাহরণ: "3.5s"

    JSON উপস্থাপনা
    {
      "videoDuration": string
    }

    রাজ্য

    একটি ফাইলের জীবনচক্রের বর্ণনা।

    এনামস
    STATE_UNSPECIFIED ডিফল্ট মান। যদি অবস্থা বাদ দেওয়া হয় তাহলে এই মানটি ব্যবহার করা হবে।
    PROCESSING ফাইলটি প্রক্রিয়া করা হচ্ছে এবং এখনও অনুমানের জন্য ব্যবহার করা যাচ্ছে না।
    ACTIVE ফাইলটি প্রক্রিয়াজাত করা হয়েছে এবং অনুমানের জন্য উপলব্ধ।
    FAILED ফাইল প্রক্রিয়াকরণ ব্যর্থ হয়েছে।

    উৎস

    এনামস
    SOURCE_UNSPECIFIED উৎস নির্দিষ্ট না থাকলে ব্যবহৃত হয়।
    UPLOADED ব্যবহারকারীর দ্বারা ফাইলটি আপলোড করা হয়েছে তা নির্দেশ করে।
    GENERATED নির্দেশ করে যে ফাইলটি গুগল দ্বারা তৈরি।
    REGISTERED নির্দেশ করে যে ফাইলটি একটি নিবন্ধিত, অর্থাৎ একটি গুগল ক্লাউড স্টোরেজ ফাইল।

    অবস্থা

    Status টাইপ একটি লজিক্যাল এরর মডেলকে সংজ্ঞায়িত করে যা REST API এবং RPC API সহ বিভিন্ন প্রোগ্রামিং পরিবেশের জন্য উপযুক্ত। এটি gRPC দ্বারা ব্যবহৃত হয়। প্রতিটি Status বার্তায় তিনটি ডেটা থাকে: ত্রুটি কোড, ত্রুটি বার্তা এবং ত্রুটির বিবরণ।

    এই ত্রুটি মডেল এবং এটির সাথে কীভাবে কাজ করবেন সে সম্পর্কে আপনি API ডিজাইন গাইডে আরও জানতে পারবেন।

    ক্ষেত্র
    code integer

    স্ট্যাটাস কোড, যা google.rpc.Code এর একটি enum মান হওয়া উচিত।

    message string

    ডেভেলপার-মুখোমুখি ত্রুটির বার্তা, যা ইংরেজিতে হওয়া উচিত। ব্যবহারকারী-মুখোমুখি যেকোনো ত্রুটির বার্তা স্থানীয়করণ করে google.rpc.Status.details ক্ষেত্রে পাঠানো উচিত, অথবা ক্লায়েন্ট দ্বারা স্থানীয়করণ করা উচিত।

    details[] object

    ত্রুটির বিবরণ বহনকারী বার্তাগুলির একটি তালিকা। API গুলির ব্যবহারের জন্য বার্তার ধরণের একটি সাধারণ সেট রয়েছে।

    একটি অবজেক্টে একটি নির্দিষ্ট ধরণের ফিল্ড রয়েছে। একটি অতিরিক্ত ফিল্ড "@type" এ একটি URI রয়েছে যা টাইপটি সনাক্ত করে। উদাহরণ: { "id": 1234, "@type": "types.example.com/standard/id" }

    JSON উপস্থাপনা
    {
      "code": integer,
      "message": string,
      "details": [
        {
          "@type": string,
          field1: ...,
          ...
        }
      ]
    }