Using files

পদ্ধতি: media.upload

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

শেষপ্রান্ত

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

  • মেটাডেটা URI, শুধুমাত্র মেটাডেটা অনুরোধের জন্য:
    POST https://generativelanguage.googleapis.com/v1beta/files URLটি gRPC ট্রান্সকোডিং সিনট্যাক্স ব্যবহার করে৷
  • শরীরের অনুরোধ

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

    ক্ষেত্র
    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());

    শ্রুতি

    পাইথন

    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());

    পাঠ্য

    পাইথন

    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());

    ভিডিও

    পাইথন

    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());

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

    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 একটি উদাহরণ থাকে।

    পদ্ধতি: 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}`);
    }

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

    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}`);

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

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

    REST সম্পদ: ফাইল

    সম্পদ: ফাইল

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

    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.
    }
    ক্ষেত্র
    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 )

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

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

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

    JSON প্রতিনিধিত্ব
    {
      "videoDuration": string
    }
    ক্ষেত্র
    videoDuration string ( Duration format)

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

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

    অবস্থা

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

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

    স্ট্যাটাস

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

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

    JSON প্রতিনিধিত্ব
    {
      "code": integer,
      "message": string,
      "details": [
        {
          "@type": string,
          field1: ...,
          ...
        }
      ]
    }
    ক্ষেত্র
    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" }