Using files

Gemini API mbështet ngarkimin e skedarëve të medias veçmas nga hyrja e shpejtë, duke lejuar që media juaj të ripërdoret përmes kërkesave të shumta dhe kërkesave të shumta. Për më shumë detaje, shikoni udhëzuesin Prompting with media .

Metoda: media.ngarkoni

Krijon një File .

Pika përfundimtare

  • Ngarko URI, për kërkesat e ngarkimit të mediave:
  • postoni https://generativelanguage.googleapis.com/upload/v1beta/files
  • URI e meta të dhënave, për kërkesat vetëm për meta të dhëna:
  • postoni https://generativelanguage.googleapis.com/v1beta/files

    Trupi i kërkesës

    Trupi i kërkesës përmban të dhëna me strukturën e mëposhtme:

    Fushat
    objekti file object ( File )

    Fakultative. Metadata për skedarin për t'u krijuar.

    Shembull i kërkesës

    Imazhi

    Python

    import google.generativeai as genai
    
    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=}")

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

    Shkoni

    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)

    Shell

    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

    Audio

    Python

    import google.generativeai as genai
    
    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=}")

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

    Shkoni

    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)

    Shell

    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

    Teksti

    Python

    import google.generativeai as genai
    
    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=}")

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

    Shkoni

    // 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)

    Shell

    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
    

    Video

    Python

    import google.generativeai as genai
    
    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=}")

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

    Shkoni

    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)

    Shell

    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

    Python

    import google.generativeai as genai
    
    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)

    Trupi i reagimit

    Përgjigje për media.upload .

    Nëse është i suksesshëm, trupi i përgjigjes përmban të dhëna me strukturën e mëposhtme:

    Fushat
    objekti file object ( File )

    Meta të dhënat për skedarin e krijuar.

    Përfaqësimi JSON
    {
      "file": {
        object (File)
      }
    }

    Metoda: files.get

    Merr meta të dhënat për File e dhënë.

    Pika përfundimtare

    merrni https://generativelanguage.googleapis.com/v1beta/{name=files/*}

    Parametrat e rrugës

    string name

    E detyrueshme. Emri i File për të marrë. Shembull: files/abc-123 Ajo merr formën files/{file} .

    Trupi i kërkesës

    Trupi i kërkesës duhet të jetë bosh.

    Shembull i kërkesës

    Python

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

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

    Shkoni

    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)

    Shell

    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

    Trupi i reagimit

    Nëse është i suksesshëm, trupi i përgjigjes përmban një shembull të File .

    Metoda: skedarët.lista

    Liston meta të dhënat për File në pronësi të projektit kërkues.

    Pika përfundimtare

    merrni https://generativelanguage.googleapis.com/v1beta/files

    Parametrat e pyetjes

    integer pageSize

    Fakultative. Numri maksimal i File për t'u kthyer për faqe. Nëse nuk specifikohet, si parazgjedhje është 10. Madhësia maksimale pageSize është 100.

    string pageToken

    Fakultative. Një shenjë faqeje nga një thirrje e mëparshme files.list .

    Trupi i kërkesës

    Trupi i kërkesës duhet të jetë bosh.

    Shembull i kërkesës

    Python

    import google.generativeai as genai
    
    print("My files:")
    for f in genai.list_files():
        print("  ", f.name)

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

    Shkoni

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

    Shell

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

    Trupi i reagimit

    Përgjigje për files.list .

    Nëse është i suksesshëm, trupi i përgjigjes përmban të dhëna me strukturën e mëposhtme:

    Fushat
    files[] object ( File )

    Lista e File s.

    string nextPageToken

    Një shenjë që mund të dërgohet si një pageToken në një thirrje të mëpasshme files.list .

    Përfaqësimi JSON
    {
      "files": [
        {
          object (File)
        }
      ],
      "nextPageToken": string
    }

    Metoda: skedarët.fshi

    Fshin File .

    Pika përfundimtare

    fshi https://generativelanguage.googleapis.com/v1beta/{name=files/*}

    Parametrat e rrugës

    string name

    E detyrueshme. Emri i File që duhet fshirë. Shembull: files/abc-123 Ajo merr formën files/{file} .

    Trupi i kërkesës

    Trupi i kërkesës duhet të jetë bosh.

    Shembull i kërkesës

    Python

    import google.generativeai as genai
    
    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

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

    Shkoni

    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)

    Shell

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

    Trupi i reagimit

    Nëse ka sukses, trupi i përgjigjes është bosh.

    Burimi REST: skedarët

    Burimi: Skedari

    Një skedar i ngarkuar në API.

    Fushat
    string name

    E pandryshueshme. Identifikues. Emri i burimit File . ID-ja (emri duke përjashtuar prefiksin "skedarë/") mund të përmbajë deri në 40 karaktere që janë alfanumerike të vogla ose viza (-). ID-ja nuk mund të fillojë ose të përfundojë me një vizë. Nëse emri është bosh gjatë krijimit, do të krijohet një emër unik. Shembull: files/123-456

    string displayName

    Fakultative. Emri i ekranit i lexueshëm nga njeriu për File . Emri i shfaqur duhet të jetë jo më shumë se 512 karaktere i gjatë, duke përfshirë hapësirat. Shembull: "Imazhi i mirëseardhjes"

    string mimeType

    Vetëm dalje. Lloji MIME i skedarit.

    sizeBytes string ( int64 format)

    Vetëm dalje. Madhësia e skedarit në bajt.

    createTime string ( Timestamp format)

    Vetëm dalje. Vula kohore e krijimit të File .

    Një vulë kohore në formatin RFC3339 UTC "Zulu", me rezolucion nanosekonda dhe deri në nëntë shifra të pjesshme. Shembuj: "2014-10-02T15:01:23Z" dhe "2014-10-02T15:01:23.045123456Z" .

    Vargu updateTime string ( Timestamp format)

    Vetëm dalje. Vula kohore e përditësimit të fundit të File .

    Një vulë kohore në formatin RFC3339 UTC "Zulu", me rezolucion nanosekonda dhe deri në nëntë shifra të pjesshme. Shembuj: "2014-10-02T15:01:23Z" dhe "2014-10-02T15:01:23.045123456Z" .

    expirationTime string ( Timestamp format)

    Vetëm dalje. Vula kohore kur do të fshihet File . Vendoseni vetëm nëse File është planifikuar të skadojë.

    Një vulë kohore në formatin RFC3339 UTC "Zulu", me rezolucion nanosekonda dhe deri në nëntë shifra të pjesshme. Shembuj: "2014-10-02T15:01:23Z" dhe "2014-10-02T15:01:23.045123456Z" .

    sha256Hash string ( bytes format)

    Vetëm dalje. SHA-256 hash i bajteve të ngarkuara.

    Një varg i koduar me bazë 64.

    string uri

    Vetëm dalje. Uri i File .

    numri i state enum ( State )

    Vetëm dalje. Gjendja e përpunimit të skedarit.

    objekt error object ( Status )

    Vetëm dalje. Statusi i gabimit nëse përpunimi i skedarit dështoi.

    metadata e fushës së bashkimit. Të dhënat meta për skedarin. metadata mund të jenë vetëm një nga sa vijon:
    Objekti videoMetadata object ( VideoMetadata )

    Vetëm dalje. Të dhënat meta për një video.

    Përfaqësimi 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.
    }

    VideoMetadata

    Të dhënat meta për një File video.

    Fushat
    Vargu i videoDuration string ( Duration format)

    Kohëzgjatja e videos.

    Një kohëzgjatje në sekonda me deri në nëntë shifra të pjesshme, që mbarojnë me ' s '. Shembull: "3.5s" .

    Përfaqësimi JSON
    {
      "videoDuration": string
    }

    Shtetit

    Gjendjet për ciklin jetësor të një skedari.

    Enums
    STATE_UNSPECIFIED Vlera e paracaktuar. Kjo vlerë përdoret nëse gjendja hiqet.
    PROCESSING Skedari është duke u përpunuar dhe nuk mund të përdoret ende për përfundime.
    ACTIVE Skedari është përpunuar dhe i disponueshëm për përfundime.
    FAILED Përpunimi i skedarit dështoi.

    Statusi

    Lloji i Status përcakton një model gabimi logjik që është i përshtatshëm për mjedise të ndryshme programimi, duke përfshirë API-të REST dhe API-të RPC. Përdoret nga gRPC . Çdo mesazh Status përmban tre pjesë të të dhënave: kodin e gabimit, mesazhin e gabimit dhe detajet e gabimit.

    Mund të mësoni më shumë rreth këtij modeli gabimi dhe si të punoni me të në Udhëzuesin e Dizajnit API .

    Fushat
    code integer

    Kodi i statusit, i cili duhet të jetë një vlerë e numrit të google.rpc.Code .

    string message

    Një mesazh gabimi përballë zhvilluesit, i cili duhet të jetë në anglisht. Çdo mesazh gabimi që përballet me përdoruesin duhet të lokalizohet dhe të dërgohet në fushën google.rpc.Status.details ose të lokalizohet nga klienti.

    details[] object

    Një listë e mesazheve që përmbajnë detajet e gabimit. Ekziston një grup i zakonshëm i llojeve të mesazheve për përdorim nga API.

    Një objekt që përmban fusha të një lloji arbitrar. Një fushë shtesë "@type" përmban një URI që identifikon llojin. Shembull: { "id": 1234, "@type": "types.example.com/standard/id" } .

    Përfaqësimi JSON
    {
      "code": integer,
      "message": string,
      "details": [
        {
          "@type": string,
          field1: ...,
          ...
        }
      ]
    }