Using files

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

পদ্ধতি: media.upload

একটি File তৈরি করে।

শেষবিন্দু

  • মিডিয়া আপলোড অনুরোধের জন্য URI আপলোড করুন:
  • https://generativelanguage.googleapis.com/upload/v1beta/files পোস্ট করুন
  • মেটাডেটা URI, শুধুমাত্র মেটাডেটা অনুরোধের জন্য:
  • https://generativelanguage.googleapis.com/v1beta/files পোস্ট করুন

    শরীরের অনুরোধ

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

    ক্ষেত্র
    file object ( File )

    ঐচ্ছিক। ফাইল তৈরি করার জন্য মেটাডেটা।

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

    ছবি

    পাইথন

    myfile = genai.upload_file(media / "Cajun_instruments.jpg")
    print(f"{myfile=}")
    
    model = genai.GenerativeModel("gemini-1.5-flash")
    result = model.generate_content(
        [myfile, "\n\n", "Can you tell me about the instruments in this photo?"]
    )
    print(f"{result.text=}")

    Node.js

    // Make sure to include these imports:
    // import { GoogleAIFileManager } from "@google/generative-ai/server";
    // import { GoogleGenerativeAI } from "@google/generative-ai";
    const fileManager = new GoogleAIFileManager(process.env.API_KEY);
    
    const uploadResult = await fileManager.uploadFile(
      `${mediaPath}/jetpack.jpg`,
      {
        mimeType: "image/jpeg",
        displayName: "Jetpack drawing",
      },
    );
    // View the response.
    console.log(
      `Uploaded file ${uploadResult.file.displayName} as: ${uploadResult.file.uri}`,
    );
    
    const genAI = new GoogleGenerativeAI(process.env.API_KEY);
    const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
    const result = await model.generateContent([
      "Tell me about this image.",
      {
        fileData: {
          fileUri: uploadResult.file.uri,
          mimeType: uploadResult.file.mimeType,
        },
      },
    ]);
    console.log(result.response.text());

    যাও

    file, err := client.UploadFileFromPath(ctx, filepath.Join(testDataDir, "Cajun_instruments.jpg"), nil)
    if err != nil {
    	log.Fatal(err)
    }
    defer client.DeleteFile(ctx, file.Name)
    
    model := client.GenerativeModel("gemini-1.5-flash")
    resp, err := model.GenerateContent(ctx,
    	genai.FileData{URI: file.URI},
    	genai.Text("Can you tell me about the instruments in this photo?"))
    if err != nil {
    	log.Fatal(err)
    }
    
    printResponse(resp)

    শেল

    MIME_TYPE=$(file -b --mime-type "${IMG_PATH_2}")
    NUM_BYTES=$(wc -c < "${IMG_PATH_2}")
    DISPLAY_NAME=TEXT
    
    tmp_header_file=upload-header.tmp
    
    # Initial resumable request defining metadata.
    # The upload url is in the response headers dump them to a file.
    curl "${BASE_URL}/upload/v1beta/files?key=${GOOGLE_API_KEY}" \
      -D upload-header.tmp \
      -H "X-Goog-Upload-Protocol: resumable" \
      -H "X-Goog-Upload-Command: start" \
      -H "X-Goog-Upload-Header-Content-Length: ${NUM_BYTES}" \
      -H "X-Goog-Upload-Header-Content-Type: ${MIME_TYPE}" \
      -H "Content-Type: application/json" \
      -d "{'file': {'display_name': '${DISPLAY_NAME}'}}" 2> /dev/null
    
    upload_url=$(grep -i "x-goog-upload-url: " "${tmp_header_file}" | cut -d" " -f2 | tr -d "\r")
    rm "${tmp_header_file}"
    
    # Upload the actual bytes.
    curl "${upload_url}" \
      -H "Content-Length: ${NUM_BYTES}" \
      -H "X-Goog-Upload-Offset: 0" \
      -H "X-Goog-Upload-Command: upload, finalize" \
      --data-binary "@${IMG_PATH_2}" 2> /dev/null > file_info.json
    
    file_uri=$(jq ".file.uri" file_info.json)
    echo file_uri=$file_uri
    
    # Now generate content using that file
    curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=$GOOGLE_API_KEY" \
        -H 'Content-Type: application/json' \
        -X POST \
        -d '{
          "contents": [{
            "parts":[
              {"text": "Can you tell me about the instruments in this photo?"},
              {"file_data":
                {"mime_type": "image/jpeg", 
                "file_uri": '$file_uri'}
            }]
            }]
           }' 2> /dev/null > response.json
    
    cat response.json
    echo
    
    jq ".candidates[].content.parts[].text" response.json

    অডিও

    পাইথন

    myfile = genai.upload_file(media / "sample.mp3")
    print(f"{myfile=}")
    
    model = genai.GenerativeModel("gemini-1.5-flash")
    result = model.generate_content([myfile, "Describe this audio clip"])
    print(f"{result.text=}")

    Node.js

    // Make sure to include these imports:
    // import { GoogleAIFileManager, FileState } from "@google/generative-ai/server";
    // import { GoogleGenerativeAI } from "@google/generative-ai";
    const fileManager = new GoogleAIFileManager(process.env.API_KEY);
    
    const uploadResult = await fileManager.uploadFile(
      `${mediaPath}/samplesmall.mp3`,
      {
        mimeType: "audio/mp3",
        displayName: "Audio sample",
      },
    );
    
    let file = await fileManager.getFile(uploadResult.file.name);
    while (file.state === FileState.PROCESSING) {
      process.stdout.write(".");
      // Sleep for 10 seconds
      await new Promise((resolve) => setTimeout(resolve, 10_000));
      // Fetch the file from the API again
      file = await fileManager.getFile(uploadResult.file.name);
    }
    
    if (file.state === FileState.FAILED) {
      throw new Error("Audio processing failed.");
    }
    
    // View the response.
    console.log(
      `Uploaded file ${uploadResult.file.displayName} as: ${uploadResult.file.uri}`,
    );
    
    const genAI = new GoogleGenerativeAI(process.env.API_KEY);
    const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
    const result = await model.generateContent([
      "Tell me about this audio clip.",
      {
        fileData: {
          fileUri: uploadResult.file.uri,
          mimeType: uploadResult.file.mimeType,
        },
      },
    ]);
    console.log(result.response.text());

    যাও

    file, err := client.UploadFileFromPath(ctx, filepath.Join(testDataDir, "sample.mp3"), nil)
    if err != nil {
    	log.Fatal(err)
    }
    defer client.DeleteFile(ctx, file.Name)
    
    model := client.GenerativeModel("gemini-1.5-flash")
    resp, err := model.GenerateContent(ctx,
    	genai.FileData{URI: file.URI},
    	genai.Text("Describe this audio clip"))
    if err != nil {
    	log.Fatal(err)
    }
    
    printResponse(resp)

    শেল

    MIME_TYPE=$(file -b --mime-type "${AUDIO_PATH}")
    NUM_BYTES=$(wc -c < "${AUDIO_PATH}")
    DISPLAY_NAME=AUDIO
    
    tmp_header_file=upload-header.tmp
    
    # Initial resumable request defining metadata.
    # The upload url is in the response headers dump them to a file.
    curl "${BASE_URL}/upload/v1beta/files?key=${GOOGLE_API_KEY}" \
      -D upload-header.tmp \
      -H "X-Goog-Upload-Protocol: resumable" \
      -H "X-Goog-Upload-Command: start" \
      -H "X-Goog-Upload-Header-Content-Length: ${NUM_BYTES}" \
      -H "X-Goog-Upload-Header-Content-Type: ${MIME_TYPE}" \
      -H "Content-Type: application/json" \
      -d "{'file': {'display_name': '${DISPLAY_NAME}'}}" 2> /dev/null
    
    upload_url=$(grep -i "x-goog-upload-url: " "${tmp_header_file}" | cut -d" " -f2 | tr -d "\r")
    rm "${tmp_header_file}"
    
    # Upload the actual bytes.
    curl "${upload_url}" \
      -H "Content-Length: ${NUM_BYTES}" \
      -H "X-Goog-Upload-Offset: 0" \
      -H "X-Goog-Upload-Command: upload, finalize" \
      --data-binary "@${AUDIO_PATH}" 2> /dev/null > file_info.json
    
    file_uri=$(jq ".file.uri" file_info.json)
    echo file_uri=$file_uri
    
    # Now generate content using that file
    curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=$GOOGLE_API_KEY" \
        -H 'Content-Type: application/json' \
        -X POST \
        -d '{
          "contents": [{
            "parts":[
              {"text": "Describe this audio clip"},
              {"file_data":{"mime_type": "audio/mp3", "file_uri": '$file_uri'}}]
            }]
           }' 2> /dev/null > response.json
    
    cat response.json
    echo
    
    jq ".candidates[].content.parts[].text" response.json

    পাঠ্য

    পাইথন

    myfile = genai.upload_file(media / "poem.txt")
    print(f"{myfile=}")
    
    model = genai.GenerativeModel("gemini-1.5-flash")
    result = model.generate_content(
        [myfile, "\n\n", "Can you add a few more lines to this poem?"]
    )
    print(f"{result.text=}")

    Node.js

    // Make sure to include these imports:
    // import { GoogleAIFileManager } from "@google/generative-ai/server";
    // import { GoogleGenerativeAI } from "@google/generative-ai";
    const fileManager = new GoogleAIFileManager(process.env.API_KEY);
    
    const uploadResult = await fileManager.uploadFile(`${mediaPath}/a11.txt`, {
      mimeType: "text/plain",
      displayName: "Apollo 11",
    });
    // View the response.
    console.log(
      `Uploaded file ${uploadResult.file.displayName} as: ${uploadResult.file.uri}`,
    );
    
    const genAI = new GoogleGenerativeAI(process.env.API_KEY);
    const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
    const result = await model.generateContent([
      "Transcribe the first few sentences of this document.",
      {
        fileData: {
          fileUri: uploadResult.file.uri,
          mimeType: uploadResult.file.mimeType,
        },
      },
    ]);
    console.log(result.response.text());

    যাও

    // Set MIME type explicitly for text files - the service may have difficulty
    // distingushing between different MIME types of text files automatically.
    file, err := client.UploadFileFromPath(ctx, filepath.Join(testDataDir, "poem.txt"), nil)
    if err != nil {
    	log.Fatal(err)
    }
    defer client.DeleteFile(ctx, file.Name)
    
    model := client.GenerativeModel("gemini-1.5-flash")
    resp, err := model.GenerateContent(ctx,
    	genai.FileData{URI: file.URI},
    	genai.Text("Can you add a few more lines to this poem?"))
    if err != nil {
    	log.Fatal(err)
    }
    
    printResponse(resp)

    শেল

    MIME_TYPE=$(file -b --mime-type "${TEXT_PATH}")
    NUM_BYTES=$(wc -c < "${TEXT_PATH}")
    DISPLAY_NAME=TEXT
    
    tmp_header_file=upload-header.tmp
    
    # Initial resumable request defining metadata.
    # The upload url is in the response headers dump them to a file.
    curl "${BASE_URL}/upload/v1beta/files?key=${GOOGLE_API_KEY}" \
      -D upload-header.tmp \
      -H "X-Goog-Upload-Protocol: resumable" \
      -H "X-Goog-Upload-Command: start" \
      -H "X-Goog-Upload-Header-Content-Length: ${NUM_BYTES}" \
      -H "X-Goog-Upload-Header-Content-Type: ${MIME_TYPE}" \
      -H "Content-Type: application/json" \
      -d "{'file': {'display_name': '${DISPLAY_NAME}'}}" 2> /dev/null
    
    upload_url=$(grep -i "x-goog-upload-url: " "${tmp_header_file}" | cut -d" " -f2 | tr -d "\r")
    rm "${tmp_header_file}"
    
    # Upload the actual bytes.
    curl "${upload_url}" \
      -H "Content-Length: ${NUM_BYTES}" \
      -H "X-Goog-Upload-Offset: 0" \
      -H "X-Goog-Upload-Command: upload, finalize" \
      --data-binary "@${TEXT_PATH}" 2> /dev/null > file_info.json
    
    file_uri=$(jq ".file.uri" file_info.json)
    echo file_uri=$file_uri
    
    # Now generate content using that file
    curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=$GOOGLE_API_KEY" \
        -H 'Content-Type: application/json' \
        -X POST \
        -d '{
          "contents": [{
            "parts":[
              {"text": "Can you add a few more lines to this poem?"},
              {"file_data":{"mime_type": "text/plain", "file_uri": '$file_uri'}}]
            }]
           }' 2> /dev/null > response.json
    
    cat response.json
    echo
    
    jq ".candidates[].content.parts[].text" response.json
    
    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
    
    curl --request "DELETE" https://generativelanguage.googleapis.com/v1beta/files/$name?key=$GOOGLE_API_KEY
    

    ভিডিও

    পাইথন

    import time
    
    # Video clip (CC BY 3.0) from https://peach.blender.org/download/
    myfile = genai.upload_file(media / "Big_Buck_Bunny.mp4")
    print(f"{myfile=}")
    
    # Videos need to be processed before you can use them.
    while myfile.state.name == "PROCESSING":
        print("processing video...")
        time.sleep(5)
        myfile = genai.get_file(myfile.name)
    
    model = genai.GenerativeModel("gemini-1.5-flash")
    result = model.generate_content([myfile, "Describe this video clip"])
    print(f"{result.text=}")

    Node.js

    // Make sure to include these imports:
    // import { GoogleAIFileManager, FileState } from "@google/generative-ai/server";
    // import { GoogleGenerativeAI } from "@google/generative-ai";
    const fileManager = new GoogleAIFileManager(process.env.API_KEY);
    
    const uploadResult = await fileManager.uploadFile(
      `${mediaPath}/Big_Buck_Bunny.mp4`,
      {
        mimeType: "video/mp4",
        displayName: "Big Buck Bunny",
      },
    );
    
    let file = await fileManager.getFile(uploadResult.file.name);
    while (file.state === FileState.PROCESSING) {
      process.stdout.write(".");
      // Sleep for 10 seconds
      await new Promise((resolve) => setTimeout(resolve, 10_000));
      // Fetch the file from the API again
      file = await fileManager.getFile(uploadResult.file.name);
    }
    
    if (file.state === FileState.FAILED) {
      throw new Error("Video processing failed.");
    }
    
    // View the response.
    console.log(
      `Uploaded file ${uploadResult.file.displayName} as: ${uploadResult.file.uri}`,
    );
    
    const genAI = new GoogleGenerativeAI(process.env.API_KEY);
    const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
    const result = await model.generateContent([
      "Tell me about this video.",
      {
        fileData: {
          fileUri: uploadResult.file.uri,
          mimeType: uploadResult.file.mimeType,
        },
      },
    ]);
    console.log(result.response.text());

    যাও

    file, err := client.UploadFileFromPath(ctx, filepath.Join(testDataDir, "earth.mp4"), nil)
    if err != nil {
    	log.Fatal(err)
    }
    defer client.DeleteFile(ctx, file.Name)
    
    // Videos need to be processed before you can use them.
    for file.State == genai.FileStateProcessing {
    	log.Printf("processing %s", file.Name)
    	time.Sleep(5 * time.Second)
    	var err error
    	if file, err = client.GetFile(ctx, file.Name); err != nil {
    		log.Fatal(err)
    	}
    }
    if file.State != genai.FileStateActive {
    	log.Fatalf("uploaded file has state %s, not active", file.State)
    }
    
    model := client.GenerativeModel("gemini-1.5-flash")
    resp, err := model.GenerateContent(ctx,
    	genai.FileData{URI: file.URI},
    	genai.Text("Describe this video clip"))
    if err != nil {
    	log.Fatal(err)
    }
    
    printResponse(resp)

    শেল

    MIME_TYPE=$(file -b --mime-type "${VIDEO_PATH}")
    NUM_BYTES=$(wc -c < "${VIDEO_PATH}")
    DISPLAY_NAME=VIDEO_PATH
    
    # Initial resumable request defining metadata.
    # The upload url is in the response headers dump them to a file.
    curl "${BASE_URL}/upload/v1beta/files?key=${GOOGLE_API_KEY}" \
      -D upload-header.tmp \
      -H "X-Goog-Upload-Protocol: resumable" \
      -H "X-Goog-Upload-Command: start" \
      -H "X-Goog-Upload-Header-Content-Length: ${NUM_BYTES}" \
      -H "X-Goog-Upload-Header-Content-Type: ${MIME_TYPE}" \
      -H "Content-Type: application/json" \
      -d "{'file': {'display_name': '${DISPLAY_NAME}'}}" 2> /dev/null
    
    upload_url=$(grep -i "x-goog-upload-url: " "${tmp_header_file}" | cut -d" " -f2 | tr -d "\r")
    rm "${tmp_header_file}"
    
    # Upload the actual bytes.
    curl "${upload_url}" \
      -H "Content-Length: ${NUM_BYTES}" \
      -H "X-Goog-Upload-Offset: 0" \
      -H "X-Goog-Upload-Command: upload, finalize" \
      --data-binary "@${VIDEO_PATH}" 2> /dev/null > file_info.json
    
    file_uri=$(jq ".file.uri" file_info.json)
    echo file_uri=$file_uri
    
    state=$(jq ".file.state" file_info.json)
    echo state=$state
    
    # Ensure the state of the video is 'ACTIVE'
    while [[ "($state)" = *"PROCESSING"* ]];
    do
      echo "Processing video..."
      sleep 5
      # Get the file of interest to check state
      curl https://generativelanguage.googleapis.com/v1beta/files/$name > file_info.json
      state=$(jq ".file.state" file_info.json)
    done
    
    # Now generate content using that file
    curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=$GOOGLE_API_KEY" \
        -H 'Content-Type: application/json' \
        -X POST \
        -d '{
          "contents": [{
            "parts":[
              {"text": "Describe this video clip"},
              {"file_data":{"mime_type": "video/mp4", "file_uri": '$file_uri'}}]
            }]
           }' 2> /dev/null > response.json
    
    cat response.json
    echo
    
    jq ".candidates[].content.parts[].text" response.json

    PDF

    পাইথন

    model = genai.GenerativeModel("gemini-1.5-flash")
    sample_pdf = genai.upload_file(media / "test.pdf")
    response = model.generate_content(["Give me a summary of this pdf file.", sample_pdf])
    print(response.text)

    প্রতিক্রিয়া শরীর

    media.upload জন্য প্রতিক্রিয়া.

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

    ক্ষেত্র
    file object ( File )

    তৈরি করা ফাইলের জন্য মেটাডেটা।

    JSON প্রতিনিধিত্ব
    {
      "file": {
        object (File)
      }
    }

    পদ্ধতি: files.get

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

    শেষবিন্দু

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

    পাথ প্যারামিটার

    name string

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

    শরীরের অনুরোধ

    অনুরোধের বডি খালি হতে হবে।

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

    পাইথন

    myfile = genai.upload_file(media / "poem.txt")
    file_name = myfile.name
    print(file_name)  # "files/*"
    
    myfile = genai.get_file(file_name)
    print(myfile)

    Node.js

    // Make sure to include these imports:
    // import { GoogleAIFileManager } from "@google/generative-ai/server";
    const fileManager = new GoogleAIFileManager(process.env.API_KEY);
    
    const uploadResponse = await fileManager.uploadFile(
      `${mediaPath}/jetpack.jpg`,
      {
        mimeType: "image/jpeg",
        displayName: "Jetpack drawing",
      },
    );
    
    // Get the previously uploaded file's metadata.
    const getResponse = await fileManager.getFile(uploadResponse.file.name);
    
    // View the response.
    console.log(
      `Retrieved file ${getResponse.displayName} as ${getResponse.uri}`,
    );

    যাও

    file, err := client.UploadFileFromPath(ctx, filepath.Join(testDataDir, "personWorkingOnComputer.jpg"), nil)
    if err != nil {
    	log.Fatal(err)
    }
    defer client.DeleteFile(ctx, file.Name)
    
    gotFile, err := client.GetFile(ctx, file.Name)
    if err != nil {
    	log.Fatal(err)
    }
    fmt.Println("Got file:", gotFile.Name)
    
    model := client.GenerativeModel("gemini-1.5-flash")
    resp, err := model.GenerateContent(ctx,
    	genai.FileData{URI: file.URI},
    	genai.Text("Describe this image"))
    if err != nil {
    	log.Fatal(err)
    }
    
    printResponse(resp)

    শেল

    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 ৷ অনির্দিষ্ট থাকলে, ডিফল্ট 10। সর্বোচ্চ pageSize হল 100।

    pageToken string

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

    শরীরের অনুরোধ

    অনুরোধের বডি খালি হতে হবে।

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

    পাইথন

    print("My files:")
    for f in genai.list_files():
        print("  ", f.name)

    Node.js

    // Make sure to include these imports:
    // import { GoogleAIFileManager } from "@google/generative-ai/server";
    const fileManager = new GoogleAIFileManager(process.env.API_KEY);
    
    const listFilesResponse = await fileManager.listFiles();
    
    // View the response.
    for (const file of listFilesResponse.files) {
      console.log(`name: ${file.name} | display name: ${file.displayName}`);
    }

    যাও

    iter := client.ListFiles(ctx)
    for {
    	ifile, err := iter.Next()
    	if err == iterator.Done {
    		break
    	}
    	if err != nil {
    		log.Fatal(err)
    	}
    	fmt.Println(ifile.Name)
    }

    শেল

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

    প্রতিক্রিয়া শরীর

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

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

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

    File তালিকা s.

    nextPageToken string

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

    JSON প্রতিনিধিত্ব
    {
      "files": [
        {
          object (File)
        }
      ],
      "nextPageToken": string
    }

    পদ্ধতি: files.delete

    File মুছে দেয়।

    শেষবিন্দু

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

    পাথ প্যারামিটার

    name string

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

    শরীরের অনুরোধ

    অনুরোধের বডি খালি হতে হবে।

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

    পাইথন

    myfile = genai.upload_file(media / "poem.txt")
    
    myfile.delete()
    
    try:
        # Error.
        model = genai.GenerativeModel("gemini-1.5-flash")
        result = model.generate_content([myfile, "Describe this file."])
    except google.api_core.exceptions.PermissionDenied:
        pass

    Node.js

    // Make sure to include these imports:
    // import { GoogleAIFileManager } from "@google/generative-ai/server";
    const fileManager = new GoogleAIFileManager(process.env.API_KEY);
    
    const uploadResult = await fileManager.uploadFile(
      `${mediaPath}/jetpack.jpg`,
      {
        mimeType: "image/jpeg",
        displayName: "Jetpack drawing",
      },
    );
    
    // Delete the file.
    await fileManager.deleteFile(uploadResult.file.name);
    
    console.log(`Deleted ${uploadResult.file.displayName}`);

    যাও

    file, err := client.UploadFileFromPath(ctx, filepath.Join(testDataDir, "personWorkingOnComputer.jpg"), nil)
    if err != nil {
    	log.Fatal(err)
    }
    defer client.DeleteFile(ctx, file.Name)
    
    gotFile, err := client.GetFile(ctx, file.Name)
    if err != nil {
    	log.Fatal(err)
    }
    fmt.Println("Got file:", gotFile.Name)
    
    model := client.GenerativeModel("gemini-1.5-flash")
    resp, err := model.GenerateContent(ctx,
    	genai.FileData{URI: file.URI},
    	genai.Text("Describe this image"))
    if err != nil {
    	log.Fatal(err)
    }
    
    printResponse(resp)

    শেল

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

    প্রতিক্রিয়া শরীর

    সফল হলে, প্রতিক্রিয়া বডি খালি।

    REST সম্পদ: ফাইল

    সম্পদ: ফাইল

    API এ আপলোড করা একটি ফাইল।

    ক্ষেত্র
    name string

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

    displayName string

    ঐচ্ছিক। File জন্য মানব-পাঠযোগ্য প্রদর্শন নাম। প্রদর্শনের নামটি স্পেস সহ দৈর্ঘ্যে 512 অক্ষরের বেশি হওয়া উচিত নয়। উদাহরণ: "স্বাগত ছবি"

    mimeType string

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

    sizeBytes string ( int64 format)

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

    createTime string ( Timestamp format)

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

    RFC3339 UTC "জুলু" ফর্ম্যাটে একটি টাইমস্ট্যাম্প, ন্যানোসেকেন্ড রেজোলিউশন এবং নয়টি পর্যন্ত ভগ্নাংশের সংখ্যা। উদাহরণ: "2014-10-02T15:01:23Z" এবং "2014-10-02T15:01:23.045123456Z"

    updateTime string ( Timestamp format)

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

    RFC3339 UTC "জুলু" ফর্ম্যাটে একটি টাইমস্ট্যাম্প, ন্যানোসেকেন্ড রেজোলিউশন এবং নয়টি পর্যন্ত ভগ্নাংশের সংখ্যা। উদাহরণ: "2014-10-02T15:01:23Z" এবং "2014-10-02T15:01:23.045123456Z"

    expirationTime string ( Timestamp format)

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

    RFC3339 UTC "জুলু" ফর্ম্যাটে একটি টাইমস্ট্যাম্প, ন্যানোসেকেন্ড রেজোলিউশন এবং নয়টি পর্যন্ত ভগ্নাংশের সংখ্যা। উদাহরণ: "2014-10-02T15:01:23Z" এবং "2014-10-02T15:01:23.045123456Z"

    sha256Hash string ( bytes format)

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

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

    uri string

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

    state enum ( State )

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

    error object ( Status )

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

    ইউনিয়ন ফিল্ড metadata । ফাইলের জন্য মেটাডেটা। metadata নিম্নলিখিতগুলির মধ্যে একটি হতে পারে:
    videoMetadata object ( VideoMetadata )

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

    JSON প্রতিনিধিত্ব
    {
      "name": string,
      "displayName": string,
      "mimeType": string,
      "sizeBytes": string,
      "createTime": string,
      "updateTime": string,
      "expirationTime": string,
      "sha256Hash": string,
      "uri": string,
      "state": enum (State),
      "error": {
        object (Status)
      },
    
      // Union field metadata can be only one of the following:
      "videoMetadata": {
        object (VideoMetadata)
      }
      // End of list of possible types for union field metadata.
    }

    ভিডিও মেটাডেটা

    একটি ভিডিও File জন্য মেটাডেটা।

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

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

    নয়টি পর্যন্ত ভগ্নাংশের সংখ্যা সহ সেকেন্ডে একটি সময়কাল, ' s ' দিয়ে শেষ হয়৷ উদাহরণ: "3.5s"

    JSON প্রতিনিধিত্ব
    {
      "videoDuration": string
    }

    রাজ্য

    একটি ফাইলের জীবনচক্রের জন্য রাজ্যগুলি৷

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

    স্ট্যাটাস

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

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

    ক্ষেত্র
    code integer

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

    message string

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

    details[] object

    ত্রুটির বিবরণ বহন করে এমন বার্তাগুলির একটি তালিকা৷ APIs ব্যবহার করার জন্য বার্তা প্রকারের একটি সাধারণ সেট আছে।

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

    JSON প্রতিনিধিত্ব
    {
      "code": integer,
      "message": string,
      "details": [
        {
          "@type": string,
          field1: ...,
          ...
        }
      ]
    }
    ,

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

    পদ্ধতি: media.upload

    একটি File তৈরি করে।

    শেষবিন্দু

  • মিডিয়া আপলোড অনুরোধের জন্য URI আপলোড করুন:
  • https://generativelanguage.googleapis.com/upload/v1beta/files পোস্ট করুন
  • মেটাডেটা URI, শুধুমাত্র মেটাডেটা অনুরোধের জন্য:
  • https://generativelanguage.googleapis.com/v1beta/files পোস্ট করুন

    শরীরের অনুরোধ

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

    ক্ষেত্র
    file object ( File )

    ঐচ্ছিক। ফাইল তৈরি করার জন্য মেটাডেটা।

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

    ছবি

    পাইথন

    myfile = genai.upload_file(media / "Cajun_instruments.jpg")
    print(f"{myfile=}")
    
    model = genai.GenerativeModel("gemini-1.5-flash")
    result = model.generate_content(
        [myfile, "\n\n", "Can you tell me about the instruments in this photo?"]
    )
    print(f"{result.text=}")

    Node.js

    // Make sure to include these imports:
    // import { GoogleAIFileManager } from "@google/generative-ai/server";
    // import { GoogleGenerativeAI } from "@google/generative-ai";
    const fileManager = new GoogleAIFileManager(process.env.API_KEY);
    
    const uploadResult = await fileManager.uploadFile(
      `${mediaPath}/jetpack.jpg`,
      {
        mimeType: "image/jpeg",
        displayName: "Jetpack drawing",
      },
    );
    // View the response.
    console.log(
      `Uploaded file ${uploadResult.file.displayName} as: ${uploadResult.file.uri}`,
    );
    
    const genAI = new GoogleGenerativeAI(process.env.API_KEY);
    const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
    const result = await model.generateContent([
      "Tell me about this image.",
      {
        fileData: {
          fileUri: uploadResult.file.uri,
          mimeType: uploadResult.file.mimeType,
        },
      },
    ]);
    console.log(result.response.text());

    যাও

    file, err := client.UploadFileFromPath(ctx, filepath.Join(testDataDir, "Cajun_instruments.jpg"), nil)
    if err != nil {
    	log.Fatal(err)
    }
    defer client.DeleteFile(ctx, file.Name)
    
    model := client.GenerativeModel("gemini-1.5-flash")
    resp, err := model.GenerateContent(ctx,
    	genai.FileData{URI: file.URI},
    	genai.Text("Can you tell me about the instruments in this photo?"))
    if err != nil {
    	log.Fatal(err)
    }
    
    printResponse(resp)

    শেল

    MIME_TYPE=$(file -b --mime-type "${IMG_PATH_2}")
    NUM_BYTES=$(wc -c < "${IMG_PATH_2}")
    DISPLAY_NAME=TEXT
    
    tmp_header_file=upload-header.tmp
    
    # Initial resumable request defining metadata.
    # The upload url is in the response headers dump them to a file.
    curl "${BASE_URL}/upload/v1beta/files?key=${GOOGLE_API_KEY}" \
      -D upload-header.tmp \
      -H "X-Goog-Upload-Protocol: resumable" \
      -H "X-Goog-Upload-Command: start" \
      -H "X-Goog-Upload-Header-Content-Length: ${NUM_BYTES}" \
      -H "X-Goog-Upload-Header-Content-Type: ${MIME_TYPE}" \
      -H "Content-Type: application/json" \
      -d "{'file': {'display_name': '${DISPLAY_NAME}'}}" 2> /dev/null
    
    upload_url=$(grep -i "x-goog-upload-url: " "${tmp_header_file}" | cut -d" " -f2 | tr -d "\r")
    rm "${tmp_header_file}"
    
    # Upload the actual bytes.
    curl "${upload_url}" \
      -H "Content-Length: ${NUM_BYTES}" \
      -H "X-Goog-Upload-Offset: 0" \
      -H "X-Goog-Upload-Command: upload, finalize" \
      --data-binary "@${IMG_PATH_2}" 2> /dev/null > file_info.json
    
    file_uri=$(jq ".file.uri" file_info.json)
    echo file_uri=$file_uri
    
    # Now generate content using that file
    curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=$GOOGLE_API_KEY" \
        -H 'Content-Type: application/json' \
        -X POST \
        -d '{
          "contents": [{
            "parts":[
              {"text": "Can you tell me about the instruments in this photo?"},
              {"file_data":
                {"mime_type": "image/jpeg", 
                "file_uri": '$file_uri'}
            }]
            }]
           }' 2> /dev/null > response.json
    
    cat response.json
    echo
    
    jq ".candidates[].content.parts[].text" response.json

    অডিও

    পাইথন

    myfile = genai.upload_file(media / "sample.mp3")
    print(f"{myfile=}")
    
    model = genai.GenerativeModel("gemini-1.5-flash")
    result = model.generate_content([myfile, "Describe this audio clip"])
    print(f"{result.text=}")

    Node.js

    // Make sure to include these imports:
    // import { GoogleAIFileManager, FileState } from "@google/generative-ai/server";
    // import { GoogleGenerativeAI } from "@google/generative-ai";
    const fileManager = new GoogleAIFileManager(process.env.API_KEY);
    
    const uploadResult = await fileManager.uploadFile(
      `${mediaPath}/samplesmall.mp3`,
      {
        mimeType: "audio/mp3",
        displayName: "Audio sample",
      },
    );
    
    let file = await fileManager.getFile(uploadResult.file.name);
    while (file.state === FileState.PROCESSING) {
      process.stdout.write(".");
      // Sleep for 10 seconds
      await new Promise((resolve) => setTimeout(resolve, 10_000));
      // Fetch the file from the API again
      file = await fileManager.getFile(uploadResult.file.name);
    }
    
    if (file.state === FileState.FAILED) {
      throw new Error("Audio processing failed.");
    }
    
    // View the response.
    console.log(
      `Uploaded file ${uploadResult.file.displayName} as: ${uploadResult.file.uri}`,
    );
    
    const genAI = new GoogleGenerativeAI(process.env.API_KEY);
    const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
    const result = await model.generateContent([
      "Tell me about this audio clip.",
      {
        fileData: {
          fileUri: uploadResult.file.uri,
          mimeType: uploadResult.file.mimeType,
        },
      },
    ]);
    console.log(result.response.text());

    যাও

    file, err := client.UploadFileFromPath(ctx, filepath.Join(testDataDir, "sample.mp3"), nil)
    if err != nil {
    	log.Fatal(err)
    }
    defer client.DeleteFile(ctx, file.Name)
    
    model := client.GenerativeModel("gemini-1.5-flash")
    resp, err := model.GenerateContent(ctx,
    	genai.FileData{URI: file.URI},
    	genai.Text("Describe this audio clip"))
    if err != nil {
    	log.Fatal(err)
    }
    
    printResponse(resp)

    শেল

    MIME_TYPE=$(file -b --mime-type "${AUDIO_PATH}")
    NUM_BYTES=$(wc -c < "${AUDIO_PATH}")
    DISPLAY_NAME=AUDIO
    
    tmp_header_file=upload-header.tmp
    
    # Initial resumable request defining metadata.
    # The upload url is in the response headers dump them to a file.
    curl "${BASE_URL}/upload/v1beta/files?key=${GOOGLE_API_KEY}" \
      -D upload-header.tmp \
      -H "X-Goog-Upload-Protocol: resumable" \
      -H "X-Goog-Upload-Command: start" \
      -H "X-Goog-Upload-Header-Content-Length: ${NUM_BYTES}" \
      -H "X-Goog-Upload-Header-Content-Type: ${MIME_TYPE}" \
      -H "Content-Type: application/json" \
      -d "{'file': {'display_name': '${DISPLAY_NAME}'}}" 2> /dev/null
    
    upload_url=$(grep -i "x-goog-upload-url: " "${tmp_header_file}" | cut -d" " -f2 | tr -d "\r")
    rm "${tmp_header_file}"
    
    # Upload the actual bytes.
    curl "${upload_url}" \
      -H "Content-Length: ${NUM_BYTES}" \
      -H "X-Goog-Upload-Offset: 0" \
      -H "X-Goog-Upload-Command: upload, finalize" \
      --data-binary "@${AUDIO_PATH}" 2> /dev/null > file_info.json
    
    file_uri=$(jq ".file.uri" file_info.json)
    echo file_uri=$file_uri
    
    # Now generate content using that file
    curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=$GOOGLE_API_KEY" \
        -H 'Content-Type: application/json' \
        -X POST \
        -d '{
          "contents": [{
            "parts":[
              {"text": "Describe this audio clip"},
              {"file_data":{"mime_type": "audio/mp3", "file_uri": '$file_uri'}}]
            }]
           }' 2> /dev/null > response.json
    
    cat response.json
    echo
    
    jq ".candidates[].content.parts[].text" response.json

    পাঠ্য

    পাইথন

    myfile = genai.upload_file(media / "poem.txt")
    print(f"{myfile=}")
    
    model = genai.GenerativeModel("gemini-1.5-flash")
    result = model.generate_content(
        [myfile, "\n\n", "Can you add a few more lines to this poem?"]
    )
    print(f"{result.text=}")

    Node.js

    // Make sure to include these imports:
    // import { GoogleAIFileManager } from "@google/generative-ai/server";
    // import { GoogleGenerativeAI } from "@google/generative-ai";
    const fileManager = new GoogleAIFileManager(process.env.API_KEY);
    
    const uploadResult = await fileManager.uploadFile(`${mediaPath}/a11.txt`, {
      mimeType: "text/plain",
      displayName: "Apollo 11",
    });
    // View the response.
    console.log(
      `Uploaded file ${uploadResult.file.displayName} as: ${uploadResult.file.uri}`,
    );
    
    const genAI = new GoogleGenerativeAI(process.env.API_KEY);
    const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
    const result = await model.generateContent([
      "Transcribe the first few sentences of this document.",
      {
        fileData: {
          fileUri: uploadResult.file.uri,
          mimeType: uploadResult.file.mimeType,
        },
      },
    ]);
    console.log(result.response.text());

    যাও

    // Set MIME type explicitly for text files - the service may have difficulty
    // distingushing between different MIME types of text files automatically.
    file, err := client.UploadFileFromPath(ctx, filepath.Join(testDataDir, "poem.txt"), nil)
    if err != nil {
    	log.Fatal(err)
    }
    defer client.DeleteFile(ctx, file.Name)
    
    model := client.GenerativeModel("gemini-1.5-flash")
    resp, err := model.GenerateContent(ctx,
    	genai.FileData{URI: file.URI},
    	genai.Text("Can you add a few more lines to this poem?"))
    if err != nil {
    	log.Fatal(err)
    }
    
    printResponse(resp)

    শেল

    MIME_TYPE=$(file -b --mime-type "${TEXT_PATH}")
    NUM_BYTES=$(wc -c < "${TEXT_PATH}")
    DISPLAY_NAME=TEXT
    
    tmp_header_file=upload-header.tmp
    
    # Initial resumable request defining metadata.
    # The upload url is in the response headers dump them to a file.
    curl "${BASE_URL}/upload/v1beta/files?key=${GOOGLE_API_KEY}" \
      -D upload-header.tmp \
      -H "X-Goog-Upload-Protocol: resumable" \
      -H "X-Goog-Upload-Command: start" \
      -H "X-Goog-Upload-Header-Content-Length: ${NUM_BYTES}" \
      -H "X-Goog-Upload-Header-Content-Type: ${MIME_TYPE}" \
      -H "Content-Type: application/json" \
      -d "{'file': {'display_name': '${DISPLAY_NAME}'}}" 2> /dev/null
    
    upload_url=$(grep -i "x-goog-upload-url: " "${tmp_header_file}" | cut -d" " -f2 | tr -d "\r")
    rm "${tmp_header_file}"
    
    # Upload the actual bytes.
    curl "${upload_url}" \
      -H "Content-Length: ${NUM_BYTES}" \
      -H "X-Goog-Upload-Offset: 0" \
      -H "X-Goog-Upload-Command: upload, finalize" \
      --data-binary "@${TEXT_PATH}" 2> /dev/null > file_info.json
    
    file_uri=$(jq ".file.uri" file_info.json)
    echo file_uri=$file_uri
    
    # Now generate content using that file
    curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=$GOOGLE_API_KEY" \
        -H 'Content-Type: application/json' \
        -X POST \
        -d '{
          "contents": [{
            "parts":[
              {"text": "Can you add a few more lines to this poem?"},
              {"file_data":{"mime_type": "text/plain", "file_uri": '$file_uri'}}]
            }]
           }' 2> /dev/null > response.json
    
    cat response.json
    echo
    
    jq ".candidates[].content.parts[].text" response.json
    
    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
    
    curl --request "DELETE" https://generativelanguage.googleapis.com/v1beta/files/$name?key=$GOOGLE_API_KEY
    

    ভিডিও

    পাইথন

    import time
    
    # Video clip (CC BY 3.0) from https://peach.blender.org/download/
    myfile = genai.upload_file(media / "Big_Buck_Bunny.mp4")
    print(f"{myfile=}")
    
    # Videos need to be processed before you can use them.
    while myfile.state.name == "PROCESSING":
        print("processing video...")
        time.sleep(5)
        myfile = genai.get_file(myfile.name)
    
    model = genai.GenerativeModel("gemini-1.5-flash")
    result = model.generate_content([myfile, "Describe this video clip"])
    print(f"{result.text=}")

    Node.js

    // Make sure to include these imports:
    // import { GoogleAIFileManager, FileState } from "@google/generative-ai/server";
    // import { GoogleGenerativeAI } from "@google/generative-ai";
    const fileManager = new GoogleAIFileManager(process.env.API_KEY);
    
    const uploadResult = await fileManager.uploadFile(
      `${mediaPath}/Big_Buck_Bunny.mp4`,
      {
        mimeType: "video/mp4",
        displayName: "Big Buck Bunny",
      },
    );
    
    let file = await fileManager.getFile(uploadResult.file.name);
    while (file.state === FileState.PROCESSING) {
      process.stdout.write(".");
      // Sleep for 10 seconds
      await new Promise((resolve) => setTimeout(resolve, 10_000));
      // Fetch the file from the API again
      file = await fileManager.getFile(uploadResult.file.name);
    }
    
    if (file.state === FileState.FAILED) {
      throw new Error("Video processing failed.");
    }
    
    // View the response.
    console.log(
      `Uploaded file ${uploadResult.file.displayName} as: ${uploadResult.file.uri}`,
    );
    
    const genAI = new GoogleGenerativeAI(process.env.API_KEY);
    const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
    const result = await model.generateContent([
      "Tell me about this video.",
      {
        fileData: {
          fileUri: uploadResult.file.uri,
          mimeType: uploadResult.file.mimeType,
        },
      },
    ]);
    console.log(result.response.text());

    যাও

    file, err := client.UploadFileFromPath(ctx, filepath.Join(testDataDir, "earth.mp4"), nil)
    if err != nil {
    	log.Fatal(err)
    }
    defer client.DeleteFile(ctx, file.Name)
    
    // Videos need to be processed before you can use them.
    for file.State == genai.FileStateProcessing {
    	log.Printf("processing %s", file.Name)
    	time.Sleep(5 * time.Second)
    	var err error
    	if file, err = client.GetFile(ctx, file.Name); err != nil {
    		log.Fatal(err)
    	}
    }
    if file.State != genai.FileStateActive {
    	log.Fatalf("uploaded file has state %s, not active", file.State)
    }
    
    model := client.GenerativeModel("gemini-1.5-flash")
    resp, err := model.GenerateContent(ctx,
    	genai.FileData{URI: file.URI},
    	genai.Text("Describe this video clip"))
    if err != nil {
    	log.Fatal(err)
    }
    
    printResponse(resp)

    শেল

    MIME_TYPE=$(file -b --mime-type "${VIDEO_PATH}")
    NUM_BYTES=$(wc -c < "${VIDEO_PATH}")
    DISPLAY_NAME=VIDEO_PATH
    
    # Initial resumable request defining metadata.
    # The upload url is in the response headers dump them to a file.
    curl "${BASE_URL}/upload/v1beta/files?key=${GOOGLE_API_KEY}" \
      -D upload-header.tmp \
      -H "X-Goog-Upload-Protocol: resumable" \
      -H "X-Goog-Upload-Command: start" \
      -H "X-Goog-Upload-Header-Content-Length: ${NUM_BYTES}" \
      -H "X-Goog-Upload-Header-Content-Type: ${MIME_TYPE}" \
      -H "Content-Type: application/json" \
      -d "{'file': {'display_name': '${DISPLAY_NAME}'}}" 2> /dev/null
    
    upload_url=$(grep -i "x-goog-upload-url: " "${tmp_header_file}" | cut -d" " -f2 | tr -d "\r")
    rm "${tmp_header_file}"
    
    # Upload the actual bytes.
    curl "${upload_url}" \
      -H "Content-Length: ${NUM_BYTES}" \
      -H "X-Goog-Upload-Offset: 0" \
      -H "X-Goog-Upload-Command: upload, finalize" \
      --data-binary "@${VIDEO_PATH}" 2> /dev/null > file_info.json
    
    file_uri=$(jq ".file.uri" file_info.json)
    echo file_uri=$file_uri
    
    state=$(jq ".file.state" file_info.json)
    echo state=$state
    
    # Ensure the state of the video is 'ACTIVE'
    while [[ "($state)" = *"PROCESSING"* ]];
    do
      echo "Processing video..."
      sleep 5
      # Get the file of interest to check state
      curl https://generativelanguage.googleapis.com/v1beta/files/$name > file_info.json
      state=$(jq ".file.state" file_info.json)
    done
    
    # Now generate content using that file
    curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=$GOOGLE_API_KEY" \
        -H 'Content-Type: application/json' \
        -X POST \
        -d '{
          "contents": [{
            "parts":[
              {"text": "Describe this video clip"},
              {"file_data":{"mime_type": "video/mp4", "file_uri": '$file_uri'}}]
            }]
           }' 2> /dev/null > response.json
    
    cat response.json
    echo
    
    jq ".candidates[].content.parts[].text" response.json

    PDF

    পাইথন

    model = genai.GenerativeModel("gemini-1.5-flash")
    sample_pdf = genai.upload_file(media / "test.pdf")
    response = model.generate_content(["Give me a summary of this pdf file.", sample_pdf])
    print(response.text)

    প্রতিক্রিয়া শরীর

    media.upload জন্য প্রতিক্রিয়া.

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

    ক্ষেত্র
    file object ( File )

    তৈরি করা ফাইলের জন্য মেটাডেটা।

    JSON প্রতিনিধিত্ব
    {
      "file": {
        object (File)
      }
    }

    পদ্ধতি: files.get

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

    শেষবিন্দু

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

    পাথ প্যারামিটার

    name string

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

    শরীরের অনুরোধ

    অনুরোধের বডি খালি হতে হবে।

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

    পাইথন

    myfile = genai.upload_file(media / "poem.txt")
    file_name = myfile.name
    print(file_name)  # "files/*"
    
    myfile = genai.get_file(file_name)
    print(myfile)

    Node.js

    // Make sure to include these imports:
    // import { GoogleAIFileManager } from "@google/generative-ai/server";
    const fileManager = new GoogleAIFileManager(process.env.API_KEY);
    
    const uploadResponse = await fileManager.uploadFile(
      `${mediaPath}/jetpack.jpg`,
      {
        mimeType: "image/jpeg",
        displayName: "Jetpack drawing",
      },
    );
    
    // Get the previously uploaded file's metadata.
    const getResponse = await fileManager.getFile(uploadResponse.file.name);
    
    // View the response.
    console.log(
      `Retrieved file ${getResponse.displayName} as ${getResponse.uri}`,
    );

    যাও

    file, err := client.UploadFileFromPath(ctx, filepath.Join(testDataDir, "personWorkingOnComputer.jpg"), nil)
    if err != nil {
    	log.Fatal(err)
    }
    defer client.DeleteFile(ctx, file.Name)
    
    gotFile, err := client.GetFile(ctx, file.Name)
    if err != nil {
    	log.Fatal(err)
    }
    fmt.Println("Got file:", gotFile.Name)
    
    model := client.GenerativeModel("gemini-1.5-flash")
    resp, err := model.GenerateContent(ctx,
    	genai.FileData{URI: file.URI},
    	genai.Text("Describe this image"))
    if err != nil {
    	log.Fatal(err)
    }
    
    printResponse(resp)

    শেল

    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 ৷ অনির্দিষ্ট থাকলে, ডিফল্ট 10। সর্বোচ্চ pageSize হল 100।

    pageToken string

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

    শরীরের অনুরোধ

    অনুরোধের বডি খালি হতে হবে।

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

    পাইথন

    print("My files:")
    for f in genai.list_files():
        print("  ", f.name)

    Node.js

    // Make sure to include these imports:
    // import { GoogleAIFileManager } from "@google/generative-ai/server";
    const fileManager = new GoogleAIFileManager(process.env.API_KEY);
    
    const listFilesResponse = await fileManager.listFiles();
    
    // View the response.
    for (const file of listFilesResponse.files) {
      console.log(`name: ${file.name} | display name: ${file.displayName}`);
    }

    যাও

    iter := client.ListFiles(ctx)
    for {
    	ifile, err := iter.Next()
    	if err == iterator.Done {
    		break
    	}
    	if err != nil {
    		log.Fatal(err)
    	}
    	fmt.Println(ifile.Name)
    }

    শেল

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

    প্রতিক্রিয়া শরীর

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

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

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

    File তালিকা s.

    nextPageToken string

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

    JSON প্রতিনিধিত্ব
    {
      "files": [
        {
          object (File)
        }
      ],
      "nextPageToken": string
    }

    পদ্ধতি: files.delete

    File মুছে দেয়।

    শেষবিন্দু

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

    পাথ প্যারামিটার

    name string

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

    শরীরের অনুরোধ

    অনুরোধের বডি খালি হতে হবে।

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

    পাইথন

    myfile = genai.upload_file(media / "poem.txt")
    
    myfile.delete()
    
    try:
        # Error.
        model = genai.GenerativeModel("gemini-1.5-flash")
        result = model.generate_content([myfile, "Describe this file."])
    except google.api_core.exceptions.PermissionDenied:
        pass

    Node.js

    // Make sure to include these imports:
    // import { GoogleAIFileManager } from "@google/generative-ai/server";
    const fileManager = new GoogleAIFileManager(process.env.API_KEY);
    
    const uploadResult = await fileManager.uploadFile(
      `${mediaPath}/jetpack.jpg`,
      {
        mimeType: "image/jpeg",
        displayName: "Jetpack drawing",
      },
    );
    
    // Delete the file.
    await fileManager.deleteFile(uploadResult.file.name);
    
    console.log(`Deleted ${uploadResult.file.displayName}`);

    যাও

    file, err := client.UploadFileFromPath(ctx, filepath.Join(testDataDir, "personWorkingOnComputer.jpg"), nil)
    if err != nil {
    	log.Fatal(err)
    }
    defer client.DeleteFile(ctx, file.Name)
    
    gotFile, err := client.GetFile(ctx, file.Name)
    if err != nil {
    	log.Fatal(err)
    }
    fmt.Println("Got file:", gotFile.Name)
    
    model := client.GenerativeModel("gemini-1.5-flash")
    resp, err := model.GenerateContent(ctx,
    	genai.FileData{URI: file.URI},
    	genai.Text("Describe this image"))
    if err != nil {
    	log.Fatal(err)
    }
    
    printResponse(resp)

    শেল

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

    প্রতিক্রিয়া শরীর

    সফল হলে, প্রতিক্রিয়া বডি খালি।

    REST সম্পদ: ফাইল

    সম্পদ: ফাইল

    API এ আপলোড করা একটি ফাইল।

    ক্ষেত্র
    name string

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

    displayName string

    ঐচ্ছিক। File জন্য মানব-পাঠযোগ্য প্রদর্শন নাম। প্রদর্শনের নামটি স্পেস সহ দৈর্ঘ্যে 512 অক্ষরের বেশি হওয়া উচিত নয়। উদাহরণ: "স্বাগত ছবি"

    mimeType string

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

    sizeBytes string ( int64 format)

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

    createTime string ( Timestamp format)

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

    RFC3339 UTC "জুলু" ফর্ম্যাটে একটি টাইমস্ট্যাম্প, ন্যানোসেকেন্ড রেজোলিউশন এবং নয়টি পর্যন্ত ভগ্নাংশের সংখ্যা। উদাহরণ: "2014-10-02T15:01:23Z" এবং "2014-10-02T15:01:23.045123456Z"

    updateTime string ( Timestamp format)

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

    RFC3339 UTC "জুলু" ফর্ম্যাটে একটি টাইমস্ট্যাম্প, ন্যানোসেকেন্ড রেজোলিউশন এবং নয়টি পর্যন্ত ভগ্নাংশের সংখ্যা। উদাহরণ: "2014-10-02T15:01:23Z" এবং "2014-10-02T15:01:23.045123456Z"

    expirationTime string ( Timestamp format)

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

    RFC3339 UTC "জুলু" ফর্ম্যাটে একটি টাইমস্ট্যাম্প, ন্যানোসেকেন্ড রেজোলিউশন এবং নয়টি পর্যন্ত ভগ্নাংশের সংখ্যা। উদাহরণ: "2014-10-02T15:01:23Z" এবং "2014-10-02T15:01:23.045123456Z"

    sha256Hash string ( bytes format)

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

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

    uri string

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

    state enum ( State )

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

    error object ( Status )

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

    ইউনিয়ন ফিল্ড metadata । ফাইলের জন্য মেটাডেটা। metadata নিম্নলিখিতগুলির মধ্যে একটি হতে পারে:
    videoMetadata object ( VideoMetadata )

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

    JSON প্রতিনিধিত্ব
    {
      "name": string,
      "displayName": string,
      "mimeType": string,
      "sizeBytes": string,
      "createTime": string,
      "updateTime": string,
      "expirationTime": string,
      "sha256Hash": string,
      "uri": string,
      "state": enum (State),
      "error": {
        object (Status)
      },
    
      // Union field metadata can be only one of the following:
      "videoMetadata": {
        object (VideoMetadata)
      }
      // End of list of possible types for union field metadata.
    }

    ভিডিও মেটাডেটা

    একটি ভিডিও File জন্য মেটাডেটা।

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

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

    নয়টি পর্যন্ত ভগ্নাংশের সংখ্যা সহ সেকেন্ডে একটি সময়কাল, ' s ' দিয়ে শেষ হয়৷ উদাহরণ: "3.5s"

    JSON প্রতিনিধিত্ব
    {
      "videoDuration": string
    }

    রাজ্য

    একটি ফাইলের জীবনচক্রের জন্য রাজ্যগুলি৷

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

    স্ট্যাটাস

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

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

    ক্ষেত্র
    code integer

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

    message string

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

    details[] object

    ত্রুটির বিবরণ বহন করে এমন বার্তাগুলির একটি তালিকা৷ APIs ব্যবহার করার জন্য বার্তা প্রকারের একটি সাধারণ সেট আছে।

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

    JSON প্রতিনিধিত্ব
    {
      "code": integer,
      "message": string,
      "details": [
        {
          "@type": string,
          field1: ...,
          ...
        }
      ]
    }
    ,

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

    পদ্ধতি: media.upload

    একটি File তৈরি করে।

    শেষবিন্দু

  • মিডিয়া আপলোড অনুরোধের জন্য URI আপলোড করুন:
  • https://generativelanguage.googleapis.com/upload/v1beta/files পোস্ট করুন
  • মেটাডেটা URI, শুধুমাত্র মেটাডেটা অনুরোধের জন্য:
  • https://generativelanguage.googleapis.com/v1beta/files পোস্ট করুন

    শরীরের অনুরোধ

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

    ক্ষেত্র
    file object ( File )

    ঐচ্ছিক। ফাইল তৈরি করার জন্য মেটাডেটা।

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

    ছবি

    পাইথন

    myfile = genai.upload_file(media / "Cajun_instruments.jpg")
    print(f"{myfile=}")
    
    model = genai.GenerativeModel("gemini-1.5-flash")
    result = model.generate_content(
        [myfile, "\n\n", "Can you tell me about the instruments in this photo?"]
    )
    print(f"{result.text=}")

    Node.js

    // Make sure to include these imports:
    // import { GoogleAIFileManager } from "@google/generative-ai/server";
    // import { GoogleGenerativeAI } from "@google/generative-ai";
    const fileManager = new GoogleAIFileManager(process.env.API_KEY);
    
    const uploadResult = await fileManager.uploadFile(
      `${mediaPath}/jetpack.jpg`,
      {
        mimeType: "image/jpeg",
        displayName: "Jetpack drawing",
      },
    );
    // View the response.
    console.log(
      `Uploaded file ${uploadResult.file.displayName} as: ${uploadResult.file.uri}`,
    );
    
    const genAI = new GoogleGenerativeAI(process.env.API_KEY);
    const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
    const result = await model.generateContent([
      "Tell me about this image.",
      {
        fileData: {
          fileUri: uploadResult.file.uri,
          mimeType: uploadResult.file.mimeType,
        },
      },
    ]);
    console.log(result.response.text());

    যাও

    file, err := client.UploadFileFromPath(ctx, filepath.Join(testDataDir, "Cajun_instruments.jpg"), nil)
    if err != nil {
    	log.Fatal(err)
    }
    defer client.DeleteFile(ctx, file.Name)
    
    model := client.GenerativeModel("gemini-1.5-flash")
    resp, err := model.GenerateContent(ctx,
    	genai.FileData{URI: file.URI},
    	genai.Text("Can you tell me about the instruments in this photo?"))
    if err != nil {
    	log.Fatal(err)
    }
    
    printResponse(resp)

    শেল

    MIME_TYPE=$(file -b --mime-type "${IMG_PATH_2}")
    NUM_BYTES=$(wc -c < "${IMG_PATH_2}")
    DISPLAY_NAME=TEXT
    
    tmp_header_file=upload-header.tmp
    
    # Initial resumable request defining metadata.
    # The upload url is in the response headers dump them to a file.
    curl "${BASE_URL}/upload/v1beta/files?key=${GOOGLE_API_KEY}" \
      -D upload-header.tmp \
      -H "X-Goog-Upload-Protocol: resumable" \
      -H "X-Goog-Upload-Command: start" \
      -H "X-Goog-Upload-Header-Content-Length: ${NUM_BYTES}" \
      -H "X-Goog-Upload-Header-Content-Type: ${MIME_TYPE}" \
      -H "Content-Type: application/json" \
      -d "{'file': {'display_name': '${DISPLAY_NAME}'}}" 2> /dev/null
    
    upload_url=$(grep -i "x-goog-upload-url: " "${tmp_header_file}" | cut -d" " -f2 | tr -d "\r")
    rm "${tmp_header_file}"
    
    # Upload the actual bytes.
    curl "${upload_url}" \
      -H "Content-Length: ${NUM_BYTES}" \
      -H "X-Goog-Upload-Offset: 0" \
      -H "X-Goog-Upload-Command: upload, finalize" \
      --data-binary "@${IMG_PATH_2}" 2> /dev/null > file_info.json
    
    file_uri=$(jq ".file.uri" file_info.json)
    echo file_uri=$file_uri
    
    # Now generate content using that file
    curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=$GOOGLE_API_KEY" \
        -H 'Content-Type: application/json' \
        -X POST \
        -d '{
          "contents": [{
            "parts":[
              {"text": "Can you tell me about the instruments in this photo?"},
              {"file_data":
                {"mime_type": "image/jpeg", 
                "file_uri": '$file_uri'}
            }]
            }]
           }' 2> /dev/null > response.json
    
    cat response.json
    echo
    
    jq ".candidates[].content.parts[].text" response.json

    অডিও

    পাইথন

    myfile = genai.upload_file(media / "sample.mp3")
    print(f"{myfile=}")
    
    model = genai.GenerativeModel("gemini-1.5-flash")
    result = model.generate_content([myfile, "Describe this audio clip"])
    print(f"{result.text=}")

    Node.js

    // Make sure to include these imports:
    // import { GoogleAIFileManager, FileState } from "@google/generative-ai/server";
    // import { GoogleGenerativeAI } from "@google/generative-ai";
    const fileManager = new GoogleAIFileManager(process.env.API_KEY);
    
    const uploadResult = await fileManager.uploadFile(
      `${mediaPath}/samplesmall.mp3`,
      {
        mimeType: "audio/mp3",
        displayName: "Audio sample",
      },
    );
    
    let file = await fileManager.getFile(uploadResult.file.name);
    while (file.state === FileState.PROCESSING) {
      process.stdout.write(".");
      // Sleep for 10 seconds
      await new Promise((resolve) => setTimeout(resolve, 10_000));
      // Fetch the file from the API again
      file = await fileManager.getFile(uploadResult.file.name);
    }
    
    if (file.state === FileState.FAILED) {
      throw new Error("Audio processing failed.");
    }
    
    // View the response.
    console.log(
      `Uploaded file ${uploadResult.file.displayName} as: ${uploadResult.file.uri}`,
    );
    
    const genAI = new GoogleGenerativeAI(process.env.API_KEY);
    const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
    const result = await model.generateContent([
      "Tell me about this audio clip.",
      {
        fileData: {
          fileUri: uploadResult.file.uri,
          mimeType: uploadResult.file.mimeType,
        },
      },
    ]);
    console.log(result.response.text());

    যাও

    file, err := client.UploadFileFromPath(ctx, filepath.Join(testDataDir, "sample.mp3"), nil)
    if err != nil {
    	log.Fatal(err)
    }
    defer client.DeleteFile(ctx, file.Name)
    
    model := client.GenerativeModel("gemini-1.5-flash")
    resp, err := model.GenerateContent(ctx,
    	genai.FileData{URI: file.URI},
    	genai.Text("Describe this audio clip"))
    if err != nil {
    	log.Fatal(err)
    }
    
    printResponse(resp)

    শেল

    MIME_TYPE=$(file -b --mime-type "${AUDIO_PATH}")
    NUM_BYTES=$(wc -c < "${AUDIO_PATH}")
    DISPLAY_NAME=AUDIO
    
    tmp_header_file=upload-header.tmp
    
    # Initial resumable request defining metadata.
    # The upload url is in the response headers dump them to a file.
    curl "${BASE_URL}/upload/v1beta/files?key=${GOOGLE_API_KEY}" \
      -D upload-header.tmp \
      -H "X-Goog-Upload-Protocol: resumable" \
      -H "X-Goog-Upload-Command: start" \
      -H "X-Goog-Upload-Header-Content-Length: ${NUM_BYTES}" \
      -H "X-Goog-Upload-Header-Content-Type: ${MIME_TYPE}" \
      -H "Content-Type: application/json" \
      -d "{'file': {'display_name': '${DISPLAY_NAME}'}}" 2> /dev/null
    
    upload_url=$(grep -i "x-goog-upload-url: " "${tmp_header_file}" | cut -d" " -f2 | tr -d "\r")
    rm "${tmp_header_file}"
    
    # Upload the actual bytes.
    curl "${upload_url}" \
      -H "Content-Length: ${NUM_BYTES}" \
      -H "X-Goog-Upload-Offset: 0" \
      -H "X-Goog-Upload-Command: upload, finalize" \
      --data-binary "@${AUDIO_PATH}" 2> /dev/null > file_info.json
    
    file_uri=$(jq ".file.uri" file_info.json)
    echo file_uri=$file_uri
    
    # Now generate content using that file
    curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=$GOOGLE_API_KEY" \
        -H 'Content-Type: application/json' \
        -X POST \
        -d '{
          "contents": [{
            "parts":[
              {"text": "Describe this audio clip"},
              {"file_data":{"mime_type": "audio/mp3", "file_uri": '$file_uri'}}]
            }]
           }' 2> /dev/null > response.json
    
    cat response.json
    echo
    
    jq ".candidates[].content.parts[].text" response.json

    পাঠ্য

    পাইথন

    myfile = genai.upload_file(media / "poem.txt")
    print(f"{myfile=}")
    
    model = genai.GenerativeModel("gemini-1.5-flash")
    result = model.generate_content(
        [myfile, "\n\n", "Can you add a few more lines to this poem?"]
    )
    print(f"{result.text=}")

    Node.js

    // Make sure to include these imports:
    // import { GoogleAIFileManager } from "@google/generative-ai/server";
    // import { GoogleGenerativeAI } from "@google/generative-ai";
    const fileManager = new GoogleAIFileManager(process.env.API_KEY);
    
    const uploadResult = await fileManager.uploadFile(`${mediaPath}/a11.txt`, {
      mimeType: "text/plain",
      displayName: "Apollo 11",
    });
    // View the response.
    console.log(
      `Uploaded file ${uploadResult.file.displayName} as: ${uploadResult.file.uri}`,
    );
    
    const genAI = new GoogleGenerativeAI(process.env.API_KEY);
    const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
    const result = await model.generateContent([
      "Transcribe the first few sentences of this document.",
      {
        fileData: {
          fileUri: uploadResult.file.uri,
          mimeType: uploadResult.file.mimeType,
        },
      },
    ]);
    console.log(result.response.text());

    যাও

    // Set MIME type explicitly for text files - the service may have difficulty
    // distingushing between different MIME types of text files automatically.
    file, err := client.UploadFileFromPath(ctx, filepath.Join(testDataDir, "poem.txt"), nil)
    if err != nil {
    	log.Fatal(err)
    }
    defer client.DeleteFile(ctx, file.Name)
    
    model := client.GenerativeModel("gemini-1.5-flash")
    resp, err := model.GenerateContent(ctx,
    	genai.FileData{URI: file.URI},
    	genai.Text("Can you add a few more lines to this poem?"))
    if err != nil {
    	log.Fatal(err)
    }
    
    printResponse(resp)

    শেল

    MIME_TYPE=$(file -b --mime-type "${TEXT_PATH}")
    NUM_BYTES=$(wc -c < "${TEXT_PATH}")
    DISPLAY_NAME=TEXT
    
    tmp_header_file=upload-header.tmp
    
    # Initial resumable request defining metadata.
    # The upload url is in the response headers dump them to a file.
    curl "${BASE_URL}/upload/v1beta/files?key=${GOOGLE_API_KEY}" \
      -D upload-header.tmp \
      -H "X-Goog-Upload-Protocol: resumable" \
      -H "X-Goog-Upload-Command: start" \
      -H "X-Goog-Upload-Header-Content-Length: ${NUM_BYTES}" \
      -H "X-Goog-Upload-Header-Content-Type: ${MIME_TYPE}" \
      -H "Content-Type: application/json" \
      -d "{'file': {'display_name': '${DISPLAY_NAME}'}}" 2> /dev/null
    
    upload_url=$(grep -i "x-goog-upload-url: " "${tmp_header_file}" | cut -d" " -f2 | tr -d "\r")
    rm "${tmp_header_file}"
    
    # Upload the actual bytes.
    curl "${upload_url}" \
      -H "Content-Length: ${NUM_BYTES}" \
      -H "X-Goog-Upload-Offset: 0" \
      -H "X-Goog-Upload-Command: upload, finalize" \
      --data-binary "@${TEXT_PATH}" 2> /dev/null > file_info.json
    
    file_uri=$(jq ".file.uri" file_info.json)
    echo file_uri=$file_uri
    
    # Now generate content using that file
    curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=$GOOGLE_API_KEY" \
        -H 'Content-Type: application/json' \
        -X POST \
        -d '{
          "contents": [{
            "parts":[
              {"text": "Can you add a few more lines to this poem?"},
              {"file_data":{"mime_type": "text/plain", "file_uri": '$file_uri'}}]
            }]
           }' 2> /dev/null > response.json
    
    cat response.json
    echo
    
    jq ".candidates[].content.parts[].text" response.json
    
    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
    
    curl --request "DELETE" https://generativelanguage.googleapis.com/v1beta/files/$name?key=$GOOGLE_API_KEY
    

    ভিডিও

    পাইথন

    import time
    
    # Video clip (CC BY 3.0) from https://peach.blender.org/download/
    myfile = genai.upload_file(media / "Big_Buck_Bunny.mp4")
    print(f"{myfile=}")
    
    # Videos need to be processed before you can use them.
    while myfile.state.name == "PROCESSING":
        print("processing video...")
        time.sleep(5)
        myfile = genai.get_file(myfile.name)
    
    model = genai.GenerativeModel("gemini-1.5-flash")
    result = model.generate_content([myfile, "Describe this video clip"])
    print(f"{result.text=}")

    Node.js

    // Make sure to include these imports:
    // import { GoogleAIFileManager, FileState } from "@google/generative-ai/server";
    // import { GoogleGenerativeAI } from "@google/generative-ai";
    const fileManager = new GoogleAIFileManager(process.env.API_KEY);
    
    const uploadResult = await fileManager.uploadFile(
      `${mediaPath}/Big_Buck_Bunny.mp4`,
      {
        mimeType: "video/mp4",
        displayName: "Big Buck Bunny",
      },
    );
    
    let file = await fileManager.getFile(uploadResult.file.name);
    while (file.state === FileState.PROCESSING) {
      process.stdout.write(".");
      // Sleep for 10 seconds
      await new Promise((resolve) => setTimeout(resolve, 10_000));
      // Fetch the file from the API again
      file = await fileManager.getFile(uploadResult.file.name);
    }
    
    if (file.state === FileState.FAILED) {
      throw new Error("Video processing failed.");
    }
    
    // View the response.
    console.log(
      `Uploaded file ${uploadResult.file.displayName} as: ${uploadResult.file.uri}`,
    );
    
    const genAI = new GoogleGenerativeAI(process.env.API_KEY);
    const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
    const result = await model.generateContent([
      "Tell me about this video.",
      {
        fileData: {
          fileUri: uploadResult.file.uri,
          mimeType: uploadResult.file.mimeType,
        },
      },
    ]);
    console.log(result.response.text());

    যাও

    file, err := client.UploadFileFromPath(ctx, filepath.Join(testDataDir, "earth.mp4"), nil)
    if err != nil {
    	log.Fatal(err)
    }
    defer client.DeleteFile(ctx, file.Name)
    
    // Videos need to be processed before you can use them.
    for file.State == genai.FileStateProcessing {
    	log.Printf("processing %s", file.Name)
    	time.Sleep(5 * time.Second)
    	var err error
    	if file, err = client.GetFile(ctx, file.Name); err != nil {
    		log.Fatal(err)
    	}
    }
    if file.State != genai.FileStateActive {
    	log.Fatalf("uploaded file has state %s, not active", file.State)
    }
    
    model := client.GenerativeModel("gemini-1.5-flash")
    resp, err := model.GenerateContent(ctx,
    	genai.FileData{URI: file.URI},
    	genai.Text("Describe this video clip"))
    if err != nil {
    	log.Fatal(err)
    }
    
    printResponse(resp)

    শেল

    MIME_TYPE=$(file -b --mime-type "${VIDEO_PATH}")
    NUM_BYTES=$(wc -c < "${VIDEO_PATH}")
    DISPLAY_NAME=VIDEO_PATH
    
    # Initial resumable request defining metadata.
    # The upload url is in the response headers dump them to a file.
    curl "${BASE_URL}/upload/v1beta/files?key=${GOOGLE_API_KEY}" \
      -D upload-header.tmp \
      -H "X-Goog-Upload-Protocol: resumable" \
      -H "X-Goog-Upload-Command: start" \
      -H "X-Goog-Upload-Header-Content-Length: ${NUM_BYTES}" \
      -H "X-Goog-Upload-Header-Content-Type: ${MIME_TYPE}" \
      -H "Content-Type: application/json" \
      -d "{'file': {'display_name': '${DISPLAY_NAME}'}}" 2> /dev/null
    
    upload_url=$(grep -i "x-goog-upload-url: " "${tmp_header_file}" | cut -d" " -f2 | tr -d "\r")
    rm "${tmp_header_file}"
    
    # Upload the actual bytes.
    curl "${upload_url}" \
      -H "Content-Length: ${NUM_BYTES}" \
      -H "X-Goog-Upload-Offset: 0" \
      -H "X-Goog-Upload-Command: upload, finalize" \
      --data-binary "@${VIDEO_PATH}" 2> /dev/null > file_info.json
    
    file_uri=$(jq ".file.uri" file_info.json)
    echo file_uri=$file_uri
    
    state=$(jq ".file.state" file_info.json)
    echo state=$state
    
    # Ensure the state of the video is 'ACTIVE'
    while [[ "($state)" = *"PROCESSING"* ]];
    do
      echo "Processing video..."
      sleep 5
      # Get the file of interest to check state
      curl https://generativelanguage.googleapis.com/v1beta/files/$name > file_info.json
      state=$(jq ".file.state" file_info.json)
    done
    
    # Now generate content using that file
    curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=$GOOGLE_API_KEY" \
        -H 'Content-Type: application/json' \
        -X POST \
        -d '{
          "contents": [{
            "parts":[
              {"text": "Describe this video clip"},
              {"file_data":{"mime_type": "video/mp4", "file_uri": '$file_uri'}}]
            }]
           }' 2> /dev/null > response.json
    
    cat response.json
    echo
    
    jq ".candidates[].content.parts[].text" response.json

    PDF

    পাইথন

    model = genai.GenerativeModel("gemini-1.5-flash")
    sample_pdf = genai.upload_file(media / "test.pdf")
    response = model.generate_content(["Give me a summary of this pdf file.", sample_pdf])
    print(response.text)

    প্রতিক্রিয়া শরীর

    media.upload জন্য প্রতিক্রিয়া.

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

    ক্ষেত্র
    file object ( File )

    তৈরি করা ফাইলের জন্য মেটাডেটা।

    JSON প্রতিনিধিত্ব
    {
      "file": {
        object (File)
      }
    }

    পদ্ধতি: files.get

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

    শেষবিন্দু

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

    পাথ প্যারামিটার

    name string

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

    শরীরের অনুরোধ

    অনুরোধের বডি খালি হতে হবে।

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

    পাইথন

    myfile = genai.upload_file(media / "poem.txt")
    file_name = myfile.name
    print(file_name)  # "files/*"
    
    myfile = genai.get_file(file_name)
    print(myfile)

    Node.js

    // Make sure to include these imports:
    // import { GoogleAIFileManager } from "@google/generative-ai/server";
    const fileManager = new GoogleAIFileManager(process.env.API_KEY);
    
    const uploadResponse = await fileManager.uploadFile(
      `${mediaPath}/jetpack.jpg`,
      {
        mimeType: "image/jpeg",
        displayName: "Jetpack drawing",
      },
    );
    
    // Get the previously uploaded file's metadata.
    const getResponse = await fileManager.getFile(uploadResponse.file.name);
    
    // View the response.
    console.log(
      `Retrieved file ${getResponse.displayName} as ${getResponse.uri}`,
    );

    যাও

    file, err := client.UploadFileFromPath(ctx, filepath.Join(testDataDir, "personWorkingOnComputer.jpg"), nil)
    if err != nil {
    	log.Fatal(err)
    }
    defer client.DeleteFile(ctx, file.Name)
    
    gotFile, err := client.GetFile(ctx, file.Name)
    if err != nil {
    	log.Fatal(err)
    }
    fmt.Println("Got file:", gotFile.Name)
    
    model := client.GenerativeModel("gemini-1.5-flash")
    resp, err := model.GenerateContent(ctx,
    	genai.FileData{URI: file.URI},
    	genai.Text("Describe this image"))
    if err != nil {
    	log.Fatal(err)
    }
    
    printResponse(resp)

    শেল

    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 ৷ অনির্দিষ্ট থাকলে, ডিফল্ট 10। সর্বোচ্চ pageSize হল 100।

    pageToken string

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

    শরীরের অনুরোধ

    অনুরোধের বডি খালি হতে হবে।

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

    পাইথন

    print("My files:")
    for f in genai.list_files():
        print("  ", f.name)

    Node.js

    // Make sure to include these imports:
    // import { GoogleAIFileManager } from "@google/generative-ai/server";
    const fileManager = new GoogleAIFileManager(process.env.API_KEY);
    
    const listFilesResponse = await fileManager.listFiles();
    
    // View the response.
    for (const file of listFilesResponse.files) {
      console.log(`name: ${file.name} | display name: ${file.displayName}`);
    }

    যাও

    iter := client.ListFiles(ctx)
    for {
    	ifile, err := iter.Next()
    	if err == iterator.Done {
    		break
    	}
    	if err != nil {
    		log.Fatal(err)
    	}
    	fmt.Println(ifile.Name)
    }

    শেল

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

    প্রতিক্রিয়া শরীর

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

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

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

    File তালিকা s.

    nextPageToken string

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

    JSON প্রতিনিধিত্ব
    {
      "files": [
        {
          object (File)
        }
      ],
      "nextPageToken": string
    }

    পদ্ধতি: files.delete

    File মুছে দেয়।

    শেষবিন্দু

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

    পাথ প্যারামিটার

    name string

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

    শরীরের অনুরোধ

    অনুরোধের বডি খালি হতে হবে।

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

    পাইথন

    myfile = genai.upload_file(media / "poem.txt")
    
    myfile.delete()
    
    try:
        # Error.
        model = genai.GenerativeModel("gemini-1.5-flash")
        result = model.generate_content([myfile, "Describe this file."])
    except google.api_core.exceptions.PermissionDenied:
        pass

    Node.js

    // Make sure to include these imports:
    // import { GoogleAIFileManager } from "@google/generative-ai/server";
    const fileManager = new GoogleAIFileManager(process.env.API_KEY);
    
    const uploadResult = await fileManager.uploadFile(
      `${mediaPath}/jetpack.jpg`,
      {
        mimeType: "image/jpeg",
        displayName: "Jetpack drawing",
      },
    );
    
    // Delete the file.
    await fileManager.deleteFile(uploadResult.file.name);
    
    console.log(`Deleted ${uploadResult.file.displayName}`);

    যাও

    file, err := client.UploadFileFromPath(ctx, filepath.Join(testDataDir, "personWorkingOnComputer.jpg"), nil)
    if err != nil {
    	log.Fatal(err)
    }
    defer client.DeleteFile(ctx, file.Name)
    
    gotFile, err := client.GetFile(ctx, file.Name)
    if err != nil {
    	log.Fatal(err)
    }
    fmt.Println("Got file:", gotFile.Name)
    
    model := client.GenerativeModel("gemini-1.5-flash")
    resp, err := model.GenerateContent(ctx,
    	genai.FileData{URI: file.URI},
    	genai.Text("Describe this image"))
    if err != nil {
    	log.Fatal(err)
    }
    
    printResponse(resp)

    শেল

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

    প্রতিক্রিয়া শরীর

    সফল হলে, প্রতিক্রিয়া বডি খালি।

    REST সম্পদ: ফাইল

    সম্পদ: ফাইল

    API এ আপলোড করা একটি ফাইল।

    ক্ষেত্র
    name string

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

    displayName string

    ঐচ্ছিক। File জন্য মানব-পাঠযোগ্য প্রদর্শন নাম। প্রদর্শনের নামটি স্পেস সহ দৈর্ঘ্যে 512 অক্ষরের বেশি হওয়া উচিত নয়। উদাহরণ: "স্বাগত ছবি"

    mimeType string

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

    sizeBytes string ( int64 format)

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

    createTime string ( Timestamp format)

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

    RFC3339 UTC "জুলু" ফর্ম্যাটে একটি টাইমস্ট্যাম্প, ন্যানোসেকেন্ড রেজোলিউশন এবং নয়টি পর্যন্ত ভগ্নাংশের সংখ্যা। উদাহরণ: "2014-10-02T15:01:23Z" এবং "2014-10-02T15:01:23.045123456Z"

    updateTime string ( Timestamp format)

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

    RFC3339 UTC "জুলু" ফর্ম্যাটে একটি টাইমস্ট্যাম্প, ন্যানোসেকেন্ড রেজোলিউশন এবং নয়টি পর্যন্ত ভগ্নাংশের সংখ্যা। উদাহরণ: "2014-10-02T15:01:23Z" এবং "2014-10-02T15:01:23.045123456Z"

    expirationTime string ( Timestamp format)

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

    RFC3339 UTC "জুলু" ফর্ম্যাটে একটি টাইমস্ট্যাম্প, ন্যানোসেকেন্ড রেজোলিউশন এবং নয়টি পর্যন্ত ভগ্নাংশের সংখ্যা। উদাহরণ: "2014-10-02T15:01:23Z" এবং "2014-10-02T15:01:23.045123456Z"

    sha256Hash string ( bytes format)

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

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

    uri string

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

    state enum ( State )

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

    error object ( Status )

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

    ইউনিয়ন ফিল্ড metadata । ফাইলের জন্য মেটাডেটা। metadata নিম্নলিখিতগুলির মধ্যে একটি হতে পারে:
    videoMetadata object ( VideoMetadata )

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

    JSON প্রতিনিধিত্ব
    {
      "name": string,
      "displayName": string,
      "mimeType": string,
      "sizeBytes": string,
      "createTime": string,
      "updateTime": string,
      "expirationTime": string,
      "sha256Hash": string,
      "uri": string,
      "state": enum (State),
      "error": {
        object (Status)
      },
    
      // Union field metadata can be only one of the following:
      "videoMetadata": {
        object (VideoMetadata)
      }
      // End of list of possible types for union field metadata.
    }

    ভিডিও মেটাডেটা

    একটি ভিডিও File জন্য মেটাডেটা।

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

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

    নয়টি পর্যন্ত ভগ্নাংশের সংখ্যা সহ সেকেন্ডে একটি সময়কাল, ' s ' দিয়ে শেষ হয়৷ উদাহরণ: "3.5s"

    JSON প্রতিনিধিত্ব
    {
      "videoDuration": string
    }

    রাজ্য

    একটি ফাইলের জীবনচক্রের জন্য রাজ্যগুলি৷

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

    স্ট্যাটাস

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

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

    ক্ষেত্র
    code integer

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

    message string

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

    details[] object

    ত্রুটির বিবরণ বহন করে এমন বার্তাগুলির একটি তালিকা৷ APIs ব্যবহার করার জন্য বার্তা প্রকারের একটি সাধারণ সেট আছে।

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

    JSON প্রতিনিধিত্ব
    {
      "code": integer,
      "message": string,
      "details": [
        {
          "@type": string,
          field1: ...,
          ...
        }
      ]
    }