Lihat di AI Google | Berjalan di Google Colab | Lihat sumber di GitHub |
Panduan memulai ini menunjukkan cara menggunakan Python SDK untuk Gemini API, yang memberi Anda akses ke model bahasa besar (LLM) Gemini dari Google. Dalam panduan memulai ini, Anda akan belajar cara:
- Siapkan lingkungan pengembangan dan akses API untuk menggunakan Gemini.
- Membuat respons teks dari input teks.
- Membuat respons teks dari input multimodal (teks dan gambar).
- Menggunakan Gemini untuk percakapan bolak-balik (chat).
- Menggunakan penyematan untuk model bahasa besar.
Prasyarat
Anda dapat menjalankan panduan memulai ini di Google Colab, yang menjalankan notebook ini langsung di browser dan tidak memerlukan konfigurasi lingkungan.
Atau, untuk menyelesaikan panduan memulai ini secara lokal, pastikan bahwa pengembangan Anda yang memenuhi persyaratan berikut:
- Python 3.9 dan yang lebih baru
- Penginstalan
jupyter
untuk menjalankan notebook.
Penyiapan
Menginstal Python SDK
Python SDK untuk Gemini API terdapat dalam
Paket google-generativeai
.
Instal dependensi menggunakan pip:
pip install -q -U google-generativeai
Mengimpor paket
Impor paket yang diperlukan.
import pathlib
import textwrap
import google.generativeai as genai
from IPython.display import display
from IPython.display import Markdown
def to_markdown(text):
text = text.replace('•', ' *')
return Markdown(textwrap.indent(text, '> ', predicate=lambda _: True))
# Used to securely store your API key
from google.colab import userdata
Menyiapkan kunci API
Sebelum dapat menggunakan Gemini API, Anda harus mendapatkan kunci API terlebih dahulu. Jika Anda jika belum memilikinya, buat kunci dengan sekali klik di Google AI Studio.
Di Colab, tambahkan kunci ke pengelola rahasia di bagian "Shopping" di panel kiri.
Beri nama GOOGLE_API_KEY
.
Setelah Anda memiliki kunci API, teruskan ke SDK. Anda dapat melakukannya dengan dua cara:
- Masukkan kunci dalam variabel lingkungan
GOOGLE_API_KEY
(SDK akan secara otomatis melanjutkannya dari sana). - Teruskan kunci ke
genai.configure(api_key=...)
# Or use `os.getenv('GOOGLE_API_KEY')` to fetch an environment variable.
GOOGLE_API_KEY=userdata.get('GOOGLE_API_KEY')
genai.configure(api_key=GOOGLE_API_KEY)
Membuat daftar model
Sekarang Anda siap untuk memanggil Gemini API. Gunakan list_models
untuk melihat ketersediaan
Model Gemini:
gemini-1.5-flash
: model multi-modal tercepatgemini-1.5-pro
: model multi-modal kami yang paling mumpuni dan cerdas
for m in genai.list_models():
if 'generateContent' in m.supported_generation_methods:
print(m.name)
Membuat teks dari input teks
Untuk perintah khusus teks, gunakan model Gemini 1.5 atau model Gemini 1.0 Pro:
model = genai.GenerativeModel('gemini-1.5-flash')
Metode generate_content
dapat menangani berbagai kasus penggunaan, termasuk
chat multi-giliran dan input multimodal, bergantung pada model yang mendasarinya
didukung. Model yang tersedia hanya mendukung teks dan gambar sebagai input, dan teks
sebagai output.
Dalam kasus paling sederhana, Anda bisa meneruskan string prompt ke
GenerativeModel.generate_content
berikut:
%%time
response = model.generate_content("What is the meaning of life?")
CPU times: user 110 ms, sys: 12.3 ms, total: 123 ms Wall time: 8.25 s
Dalam kasus sederhana, Anda hanya memerlukan pengakses response.text
. Untuk ditampilkan
memformat teks Markdown, gunakan fungsi to_markdown
:
to_markdown(response.text)
The query of life's purpose has perplexed people across centuries, cultures, and continents. While there is no universally recognized response, many ideas have been put forth, and the response is frequently dependent on individual ideas, beliefs, and life experiences. 1. **Happiness and Well-being:** Many individuals believe that the goal of life is to attain personal happiness and well-being. This might entail locating pursuits that provide joy, establishing significant connections, caring for one's physical and mental health, and pursuing personal goals and interests. 2. **Meaningful Contribution:** Some believe that the purpose of life is to make a meaningful contribution to the world. This might entail pursuing a profession that benefits others, engaging in volunteer or charitable activities, generating art or literature, or inventing. 3. **Self-realization and Personal Growth:** The pursuit of self-realization and personal development is another common goal in life. This might entail learning new skills, pushing one's boundaries, confronting personal obstacles, and evolving as a person. 4. **Ethical and Moral Behavior:** Some believe that the goal of life is to act ethically and morally. This might entail adhering to one's moral principles, doing the right thing even when it is difficult, and attempting to make the world a better place. 5. **Spiritual Fulfillment:** For some, the purpose of life is connected to spiritual or religious beliefs. This might entail seeking a connection with a higher power, practicing religious rituals, or following spiritual teachings. 6. **Experiencing Life to the Fullest:** Some individuals believe that the goal of life is to experience all that it has to offer. This might entail traveling, trying new things, taking risks, and embracing new encounters. 7. **Legacy and Impact:** Others believe that the purpose of life is to leave a lasting legacy and impact on the world. This might entail accomplishing something noteworthy, being remembered for one's contributions, or inspiring and motivating others. 8. **Finding Balance and Harmony:** For some, the purpose of life is to find balance and harmony in all aspects of their lives. This might entail juggling personal, professional, and social obligations, seeking inner peace and contentment, and living a life that is in accordance with one's values and beliefs. Ultimately, the meaning of life is a personal journey, and different individuals may discover their own unique purpose through their experiences, reflections, and interactions with the world around them.
Jika API gagal menampilkan hasil, gunakan
GenerateContentResponse.prompt_feedback
untuk melihat apakah situs diblokir karena
masalah keamanan terkait perintah tersebut.
response.prompt_feedback
safety_ratings { category: HARM_CATEGORY_SEXUALLY_EXPLICIT probability: NEGLIGIBLE } safety_ratings { category: HARM_CATEGORY_HATE_SPEECH probability: NEGLIGIBLE } safety_ratings { category: HARM_CATEGORY_HARASSMENT probability: NEGLIGIBLE } safety_ratings { category: HARM_CATEGORY_DANGEROUS_CONTENT probability: NEGLIGIBLE }
Gemini dapat menghasilkan beberapa kemungkinan respons untuk satu perintah. Ini
kemungkinan respons disebut candidates
, dan Anda dapat meninjaunya untuk memilih
yang paling sesuai sebagai respons.
Lihat kandidat respons dengan
GenerateContentResponse.candidates
:
response.candidates
[ content { parts { text: "The query of life\'s purpose has perplexed people across centuries, cultures, and continents. While there is no universally recognized response, many ideas have been put forth, and the response is frequently dependent on individual ideas, beliefs, and life experiences.\n\n1. **Happiness and Well-being:** Many individuals believe that the goal of life is to attain personal happiness and well-being. This might entail locating pursuits that provide joy, establishing significant connections, caring for one\'s physical and mental health, and pursuing personal goals and interests.\n\n2. **Meaningful Contribution:** Some believe that the purpose of life is to make a meaningful contribution to the world. This might entail pursuing a profession that benefits others, engaging in volunteer or charitable activities, generating art or literature, or inventing.\n\n3. **Self-realization and Personal Growth:** The pursuit of self-realization and personal development is another common goal in life. This might entail learning new skills, pushing one\'s boundaries, confronting personal obstacles, and evolving as a person.\n\n4. **Ethical and Moral Behavior:** Some believe that the goal of life is to act ethically and morally. This might entail adhering to one\'s moral principles, doing the right thing even when it is difficult, and attempting to make the world a better place.\n\n5. **Spiritual Fulfillment:** For some, the purpose of life is connected to spiritual or religious beliefs. This might entail seeking a connection with a higher power, practicing religious rituals, or following spiritual teachings.\n\n6. **Experiencing Life to the Fullest:** Some individuals believe that the goal of life is to experience all that it has to offer. This might entail traveling, trying new things, taking risks, and embracing new encounters.\n\n7. **Legacy and Impact:** Others believe that the purpose of life is to leave a lasting legacy and impact on the world. This might entail accomplishing something noteworthy, being remembered for one\'s contributions, or inspiring and motivating others.\n\n8. **Finding Balance and Harmony:** For some, the purpose of life is to find balance and harmony in all aspects of their lives. This might entail juggling personal, professional, and social obligations, seeking inner peace and contentment, and living a life that is in accordance with one\'s values and beliefs.\n\nUltimately, the meaning of life is a personal journey, and different individuals may discover their own unique purpose through their experiences, reflections, and interactions with the world around them." } role: "model" } finish_reason: STOP index: 0 safety_ratings { category: HARM_CATEGORY_SEXUALLY_EXPLICIT probability: NEGLIGIBLE } safety_ratings { category: HARM_CATEGORY_HATE_SPEECH probability: NEGLIGIBLE } safety_ratings { category: HARM_CATEGORY_HARASSMENT probability: NEGLIGIBLE } safety_ratings { category: HARM_CATEGORY_DANGEROUS_CONTENT probability: NEGLIGIBLE } ]
Secara default, model menampilkan respons setelah menyelesaikan seluruh pembuatan {i>checkout<i}. Anda juga dapat mengalirkan respons saat sedang dibuat, dan akan mengembalikan potongan respons segera setelah dihasilkan.
Untuk men-streaming respons, gunakan GenerativeModel.generate_content(...,
stream=True)
.
%%time
response = model.generate_content("What is the meaning of life?", stream=True)
CPU times: user 102 ms, sys: 25.1 ms, total: 128 ms Wall time: 7.94 s
for chunk in response:
print(chunk.text)
print("_"*80)
The query of life's purpose has perplexed people across centuries, cultures, and ________________________________________________________________________________ continents. While there is no universally recognized response, many ideas have been put forth, and the response is frequently dependent on individual ideas, beliefs, and life experiences ________________________________________________________________________________ . 1. **Happiness and Well-being:** Many individuals believe that the goal of life is to attain personal happiness and well-being. This might entail locating pursuits that provide joy, establishing significant connections, caring for one's physical and mental health, and pursuing personal goals and aspirations. 2. **Meaning ________________________________________________________________________________ ful Contribution:** Some believe that the purpose of life is to make a meaningful contribution to the world. This might entail pursuing a profession that benefits others, engaging in volunteer or charitable activities, generating art or literature, or inventing. 3. **Self-realization and Personal Growth:** The pursuit of self-realization and personal development is another common goal in life. This might entail learning new skills, exploring one's interests and abilities, overcoming obstacles, and becoming the best version of oneself. 4. **Connection and Relationships:** For many individuals, the purpose of life is found in their relationships with others. This might entail building ________________________________________________________________________________ strong bonds with family and friends, fostering a sense of community, and contributing to the well-being of those around them. 5. **Spiritual Fulfillment:** For those with religious or spiritual beliefs, the purpose of life may be centered on seeking spiritual fulfillment or enlightenment. This might entail following religious teachings, engaging in spiritual practices, or seeking a deeper understanding of the divine. 6. **Experiencing the Journey:** Some believe that the purpose of life is simply to experience the journey itself, with all its joys and sorrows. This perspective emphasizes embracing the present moment, appreciating life's experiences, and finding meaning in the act of living itself. 7. **Legacy and Impact:** For others, the goal of life is to leave a lasting legacy or impact on the world. This might entail making a significant contribution to a particular field, leaving a positive mark on future generations, or creating something that will be remembered and cherished long after one's lifetime. Ultimately, the meaning of life is a personal and subjective question, and there is no single, universally accepted answer. It is about discovering what brings you fulfillment, purpose, and meaning in your own life, and living in accordance with those values. ________________________________________________________________________________
Saat streaming, beberapa atribut respons tidak tersedia hingga Anda melakukan iterasi pada semua potongan respons. Hal ini ditunjukkan di bawah ini:
response = model.generate_content("What is the meaning of life?", stream=True)
Atribut prompt_feedback
berfungsi:
response.prompt_feedback
safety_ratings { category: HARM_CATEGORY_SEXUALLY_EXPLICIT probability: NEGLIGIBLE } safety_ratings { category: HARM_CATEGORY_HATE_SPEECH probability: NEGLIGIBLE } safety_ratings { category: HARM_CATEGORY_HARASSMENT probability: NEGLIGIBLE } safety_ratings { category: HARM_CATEGORY_DANGEROUS_CONTENT probability: NEGLIGIBLE }
Namun, atribut seperti text
tidak:
try:
response.text
except Exception as e:
print(f'{type(e).__name__}: {e}')
IncompleteIterationError: Please let the response complete iteration before accessing the final accumulated attributes (or call `response.resolve()`)
Membuat teks dari input gambar dan teks
Gemini menyediakan berbagai model yang dapat menangani input multimodal (Gemini 1.5 agar Anda dapat memasukkan teks dan gambar. Pastikan untuk meninjau persyaratan gambar untuk perintah.
Saat input perintah menyertakan teks dan gambar, gunakan Gemini 1.5 dengan
Metode GenerativeModel.generate_content
untuk menghasilkan output teks:
Mari kita sertakan gambar:
curl -o image.jpg https://t0.gstatic.com/licensed-image?q=tbn:ANd9GcQ_Kevbk21QBRy-PgB4kQpS79brbmmEG7m3VOTShAn4PecDU5H5UxrJxE3Dw1JiaG17V88QIol19-3TM2wCHw
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 100 405k 100 405k 0 0 6982k 0 --:--:-- --:--:-- --:--:-- 7106k
import PIL.Image
img = PIL.Image.open('image.jpg')
img
Gunakan model Gemini 1.5 dan teruskan gambar ke model tersebut dengan generate_content
.
model = genai.GenerativeModel('gemini-1.5-flash')
response = model.generate_content(img)
to_markdown(response.text)
Chicken Teriyaki Meal Prep Bowls with brown rice, roasted broccoli and bell peppers.
Untuk menyediakan teks dan gambar dalam perintah, teruskan daftar yang berisi string dan gambar:
response = model.generate_content(["Write a short, engaging blog post based on this picture. It should include a description of the meal in the photo and talk about my journey meal prepping.", img], stream=True)
response.resolve()
to_markdown(response.text)
Meal prepping is a great way to save time and money, and it can also help you to eat healthier. This meal is a great example of a healthy and delicious meal that can be easily prepped ahead of time. This meal features brown rice, roasted vegetables, and chicken teriyaki. The brown rice is a whole grain that is high in fiber and nutrients. The roasted vegetables are a great way to get your daily dose of vitamins and minerals. And the chicken teriyaki is a lean protein source that is also packed with flavor. This meal is easy to prepare ahead of time. Simply cook the brown rice, roast the vegetables, and cook the chicken teriyaki. Then, divide the meal into individual containers and store them in the refrigerator. When you're ready to eat, simply grab a container and heat it up. This meal is a great option for busy people who are looking for a healthy and delicious way to eat. It's also a great meal for those who are trying to lose weight or maintain a healthy weight. If you're looking for a healthy and delicious meal that can be easily prepped ahead of time, this meal is a great option. Give it a try today!
Percakapan chat
Gemini memungkinkan Anda melakukan percakapan dalam bentuk bebas dalam beberapa giliran. Tujuan
Class ChatSession
menyederhanakan proses dengan mengelola status
tidak seperti generate_content
, Anda tidak perlu menyimpan
riwayat percakapan sebagai daftar.
Lakukan inisialisasi chat:
model = genai.GenerativeModel('gemini-1.5-flash')
chat = model.start_chat(history=[])
chat
<google.generativeai.generative_models.ChatSession at 0x7b7b68250100>
Tujuan
ChatSession.send_message
menampilkan jenis GenerateContentResponse
yang sama dengan
GenerativeModel.generate_content
.
Tindakan ini juga menambahkan pesan Anda dan respons ke histori chat:
response = chat.send_message("In one sentence, explain how a computer works to a young child.")
to_markdown(response.text)
A computer is like a very smart machine that can understand and follow our instructions, help us with our work, and even play games with us!
chat.history
[ parts { text: "In one sentence, explain how a computer works to a young child." } role: "user", parts { text: "A computer is like a very smart machine that can understand and follow our instructions, help us with our work, and even play games with us!" } role: "model" ]
Anda dapat terus mengirim pesan untuk melanjutkan percakapan. Gunakan
Argumen stream=True
untuk melakukan streaming chat:
response = chat.send_message("Okay, how about a more detailed explanation to a high schooler?", stream=True)
for chunk in response:
print(chunk.text)
print("_"*80)
A computer works by following instructions, called a program, which tells it what to ________________________________________________________________________________ do. These instructions are written in a special language that the computer can understand, and they are stored in the computer's memory. The computer's processor ________________________________________________________________________________ , or CPU, reads the instructions from memory and carries them out, performing calculations and making decisions based on the program's logic. The results of these calculations and decisions are then displayed on the computer's screen or stored in memory for later use. To give you a simple analogy, imagine a computer as a ________________________________________________________________________________ chef following a recipe. The recipe is like the program, and the chef's actions are like the instructions the computer follows. The chef reads the recipe (the program) and performs actions like gathering ingredients (fetching data from memory), mixing them together (performing calculations), and cooking them (processing data). The final dish (the output) is then presented on a plate (the computer screen). In summary, a computer works by executing a series of instructions, stored in its memory, to perform calculations, make decisions, and display or store the results. ________________________________________________________________________________
Objek glm.Content
berisi daftar objek glm.Part
yang masing-masing berisi
teks (string) atau inline_data (glm.Blob
), dengan blob berisi biner
data dan mime_type
. Histori chat tersedia sebagai daftar glm.Content
objek pada
ChatSession.history
:
for message in chat.history:
display(to_markdown(f'**{message.role}**: {message.parts[0].text}'))
**user**: In one sentence, explain how a computer works to a young child. **model**: A computer is like a very smart machine that can understand and follow our instructions, help us with our work, and even play games with us! **user**: Okay, how about a more detailed explanation to a high schooler? **model**: A computer works by following instructions, called a program, which tells it what to do. These instructions are written in a special language that the computer can understand, and they are stored in the computer's memory. The computer's processor, or CPU, reads the instructions from memory and carries them out, performing calculations and making decisions based on the program's logic. The results of these calculations and decisions are then displayed on the computer's screen or stored in memory for later use. To give you a simple analogy, imagine a computer as a chef following a recipe. The recipe is like the program, and the chef's actions are like the instructions the computer follows. The chef reads the recipe (the program) and performs actions like gathering ingredients (fetching data from memory), mixing them together (performing calculations), and cooking them (processing data). The final dish (the output) is then presented on a plate (the computer screen). In summary, a computer works by executing a series of instructions, stored in its memory, to perform calculations, make decisions, and display or store the results.
Hitung token
Model bahasa besar memiliki jendela konteks, dan panjang konteksnya sering kali
yang diukur dalam hal jumlah token. Dengan Gemini API, Anda dapat
menentukan jumlah token per objek genai.protos.Content
. Di kolom
kasus paling sederhana, Anda bisa meneruskan string kueri ke
GenerativeModel.count_tokens
metode sebagai berikut:
model.count_tokens("What is the meaning of life?")
total_tokens: 7
Demikian pula, Anda dapat memeriksa token_count
untuk ChatSession
Anda:
model.count_tokens(chat.history)
total_tokens: 501
Menggunakan embedding
Penyematan adalah teknik yang digunakan untuk menampilkan informasi sebagai daftar bilangan floating point dalam array. Dengan Gemini, Anda dapat menampilkan teks (kata, kalimat, dan blok teks) dalam bentuk vektor, sehingga lebih mudah untuk dibandingkan dan dikontraskan embedding yang berbeda. Misalnya, dua teks yang memiliki materi pokok yang sama atau sentimen harus memiliki embedding serupa, yang dapat diidentifikasi melalui teknik perbandingan matematis seperti kesamaan kosinus. Untuk selengkapnya tentang cara dan mengapa Anda harus menggunakan embedding, baca bagian Embeddings panduan kami.
Gunakan metode embed_content
untuk menghasilkan embedding. Metode menangani
penyematan untuk tugas berikut (task_type
):
Jenis Tugas | Deskripsi |
---|---|
RETRIEVAL_QUERY | Menentukan bahwa teks yang diberikan merupakan kueri dalam setelan penelusuran/pengambilan. |
RETRIEVAL_DOCUMENT | Menentukan bahwa teks yang diberikan adalah dokumen dalam setelan penelusuran/pengambilan. Penggunaan jenis tugas ini memerlukan title . |
SEMANTIC_SIMILARITY | Menentukan bahwa teks yang diberikan akan digunakan untuk Kemiripan Teks Semantik (STS). |
KLASIFIKASI | Menentukan bahwa embedding akan digunakan untuk klasifikasi. |
PENGELOLAAN | Menentukan bahwa embedding akan digunakan untuk pengelompokan. |
Berikut ini menghasilkan penyematan untuk string tunggal untuk pengambilan dokumen:
result = genai.embed_content(
model="models/embedding-001",
content="What is the meaning of life?",
task_type="retrieval_document",
title="Embedding of single string")
# 1 input > 1 vector output
print(str(result['embedding'])[:50], '... TRIMMED]')
[-0.003216741, -0.013358698, -0.017649598, -0.0091 ... TRIMMED]
Untuk menangani batch string, teruskan daftar string dalam content
:
result = genai.embed_content(
model="models/embedding-001",
content=[
'What is the meaning of life?',
'How much wood would a woodchuck chuck?',
'How does the brain work?'],
task_type="retrieval_document",
title="Embedding of list of strings")
# A list of inputs > A list of vectors output
for v in result['embedding']:
print(str(v)[:50], '... TRIMMED ...')
[0.0040260437, 0.004124458, -0.014209415, -0.00183 ... TRIMMED ... [-0.004049845, -0.0075574904, -0.0073463684, -0.03 ... TRIMMED ... [0.025310587, -0.0080734305, -0.029902633, 0.01160 ... TRIMMED ...
Meskipun fungsi genai.embed_content
menerima string atau daftar string, fungsi tersebut
sebenarnya dibuat berdasarkan jenis genai.protos.Content
(seperti
GenerativeModel.generate_content
)
Objek glm.Content
adalah unit utama percakapan di API.
Meskipun objek genai.protos.Content
adalah multimodal, embed_content
hanya mendukung embedding teks. Desain ini memberi API
kemungkinan untuk diperluas ke embedding multimodal.
response.candidates[0].content
parts { text: "A computer works by following instructions, called a program, which tells it what to do. These instructions are written in a special language that the computer can understand, and they are stored in the computer\'s memory. The computer\'s processor, or CPU, reads the instructions from memory and carries them out, performing calculations and making decisions based on the program\'s logic. The results of these calculations and decisions are then displayed on the computer\'s screen or stored in memory for later use.\n\nTo give you a simple analogy, imagine a computer as a chef following a recipe. The recipe is like the program, and the chef\'s actions are like the instructions the computer follows. The chef reads the recipe (the program) and performs actions like gathering ingredients (fetching data from memory), mixing them together (performing calculations), and cooking them (processing data). The final dish (the output) is then presented on a plate (the computer screen).\n\nIn summary, a computer works by executing a series of instructions, stored in its memory, to perform calculations, make decisions, and display or store the results." } role: "model"
result = genai.embed_content(
model = 'models/embedding-001',
content = response.candidates[0].content)
# 1 input > 1 vector output
print(str(result['embedding'])[:50], '... TRIMMED ...')
[-0.013921871, -0.03504407, -0.0051786783, 0.03113 ... TRIMMED ...
Demikian pula, histori chat berisi daftar objek genai.protos.Content
,
yang dapat Anda teruskan langsung ke fungsi embed_content
:
chat.history
[ parts { text: "In one sentence, explain how a computer works to a young child." } role: "user", parts { text: "A computer is like a very smart machine that can understand and follow our instructions, help us with our work, and even play games with us!" } role: "model", parts { text: "Okay, how about a more detailed explanation to a high schooler?" } role: "user", parts { text: "A computer works by following instructions, called a program, which tells it what to do. These instructions are written in a special language that the computer can understand, and they are stored in the computer\'s memory. The computer\'s processor, or CPU, reads the instructions from memory and carries them out, performing calculations and making decisions based on the program\'s logic. The results of these calculations and decisions are then displayed on the computer\'s screen or stored in memory for later use.\n\nTo give you a simple analogy, imagine a computer as a chef following a recipe. The recipe is like the program, and the chef\'s actions are like the instructions the computer follows. The chef reads the recipe (the program) and performs actions like gathering ingredients (fetching data from memory), mixing them together (performing calculations), and cooking them (processing data). The final dish (the output) is then presented on a plate (the computer screen).\n\nIn summary, a computer works by executing a series of instructions, stored in its memory, to perform calculations, make decisions, and display or store the results." } role: "model" ]
result = genai.embed_content(
model = 'models/embedding-001',
content = chat.history)
# 1 input > 1 vector output
for i,v in enumerate(result['embedding']):
print(str(v)[:50], '... TRIMMED...')
[-0.014632266, -0.042202696, -0.015757175, 0.01548 ... TRIMMED... [-0.010979066, -0.024494737, 0.0092659835, 0.00803 ... TRIMMED... [-0.010055617, -0.07208932, -0.00011750793, -0.023 ... TRIMMED... [-0.013921871, -0.03504407, -0.0051786783, 0.03113 ... TRIMMED...
Kasus penggunaan lanjutan
Bagian berikut membahas kasus penggunaan lanjutan dan detail tingkat rendah Python SDK untuk Gemini API.
Setelan keamanan
Argumen safety_settings
memungkinkan Anda mengonfigurasi apa yang diblokir model dan
baik dalam prompt maupun respons. Secara default, setelan keamanan akan memblokir konten
dengan probabilitas sedang dan/atau tinggi sebagai konten yang tidak aman di semua
dimensi kustom. Pelajari lebih lanjut Keamanan
setelan.
Masukkan perintah yang boleh dipertanyakan, lalu jalankan model dengan setelan keamanan default, dan tidak akan menampilkan kandidat apa pun:
response = model.generate_content('[Questionable prompt here]')
response.candidates
[ content { parts { text: "I\'m sorry, but this prompt involves a sensitive topic and I\'m not allowed to generate responses that are potentially harmful or inappropriate." } role: "model" } finish_reason: STOP index: 0 safety_ratings { category: HARM_CATEGORY_SEXUALLY_EXPLICIT probability: NEGLIGIBLE } safety_ratings { category: HARM_CATEGORY_HATE_SPEECH probability: NEGLIGIBLE } safety_ratings { category: HARM_CATEGORY_HARASSMENT probability: NEGLIGIBLE } safety_ratings { category: HARM_CATEGORY_DANGEROUS_CONTENT probability: NEGLIGIBLE } ]
prompt_feedback
akan memberi tahu Anda filter keamanan mana yang memblokir dialog:
response.prompt_feedback
safety_ratings { category: HARM_CATEGORY_SEXUALLY_EXPLICIT probability: NEGLIGIBLE } safety_ratings { category: HARM_CATEGORY_HATE_SPEECH probability: NEGLIGIBLE } safety_ratings { category: HARM_CATEGORY_HARASSMENT probability: NEGLIGIBLE } safety_ratings { category: HARM_CATEGORY_DANGEROUS_CONTENT probability: NEGLIGIBLE }
Sekarang berikan prompt yang sama ke model dengan setelan keamanan yang baru dikonfigurasi, dan Anda mungkin mendapatkan jawaban.
response = model.generate_content('[Questionable prompt here]',
safety_settings={'HARASSMENT':'block_none'})
response.text
Perhatikan juga bahwa setiap kandidat memiliki safety_ratings
-nya sendiri, untuk berjaga-jaga
lolos tetapi respons individu tersebut
gagal dalam pemeriksaan keamanan.
Mengenkode pesan
Bagian sebelumnya mengandalkan SDK untuk memudahkan Anda mengirim perintah ke API. Bagian ini menawarkan ekuivalen yang sepenuhnya diketik dengan bagian sehingga Anda dapat lebih memahami detail di tingkat yang lebih rendah mengenai bagaimana SDK mengenkode pesan.
SDK akan mencoba mengonversi pesan Anda menjadi objek genai.protos.Content
,
yang berisi daftar objek genai.protos.Part
yang masing-masing berisi:
text
(string)inline_data
(genai.protos.Blob
), dengan blob berisi binerdata
danmime_type
.- atau jenis data lainnya.
Anda juga dapat meneruskan class ini sebagai kamus yang setara.
Jadi, ekuivalen yang diketik sepenuhnya dengan contoh sebelumnya adalah:
model = genai.GenerativeModel('gemini-1.5-flash')
response = model.generate_content(
genai.protos.Content(
parts = [
genai.protos.Part(text="Write a short, engaging blog post based on this picture."),
genai.protos.Part(
inline_data=genai.protos.Blob(
mime_type='image/jpeg',
data=pathlib.Path('image.jpg').read_bytes()
)
),
],
),
stream=True)
response.resolve()
to_markdown(response.text[:100] + "... [TRIMMED] ...")
Meal prepping is a great way to save time and money, and it can also help you to eat healthier. By ... [TRIMMED] ...
Percakapan multi-giliran
Meskipun class genai.ChatSession
yang ditampilkan sebelumnya dapat menangani banyak kasus penggunaan, class ini
membuat beberapa asumsi. Jika kasus penggunaan Anda tidak sesuai dengan chat ini
sebaiknya ingat bahwa genai.ChatSession
hanyalah wrapper
sekitar
GenerativeModel.generate_content
.
Selain permintaan tunggal, aplikasi ini dapat menangani percakapan bolak-balik.
Setiap pesan merupakan objek genai.protos.Content
atau kompatibel
kamus, seperti yang terlihat di bagian sebelumnya. Sebagai kamus, pesan
memerlukan kunci role
dan parts
. role
dalam percakapan dapat berupa
user
, yang menyediakan perintah, atau model
, yang memberikan respons.
Teruskan daftar objek genai.protos.Content
dan objek tersebut akan diperlakukan sebagai
obrolan bolak-balik:
model = genai.GenerativeModel('gemini-1.5-flash')
messages = [
{'role':'user',
'parts': ["Briefly explain how a computer works to a young child."]}
]
response = model.generate_content(messages)
to_markdown(response.text)
Imagine a computer as a really smart friend who can help you with many things. Just like you have a brain to think and learn, a computer has a brain too, called a processor. It's like the boss of the computer, telling it what to do. Inside the computer, there's a special place called memory, which is like a big storage box. It remembers all the things you tell it to do, like opening games or playing videos. When you press buttons on the keyboard or click things on the screen with the mouse, you're sending messages to the computer. These messages travel through special wires, called cables, to the processor. The processor reads the messages and tells the computer what to do. It can open programs, show you pictures, or even play music for you. All the things you see on the screen are created by the graphics card, which is like a magic artist inside the computer. It takes the processor's instructions and turns them into colorful pictures and videos. To save your favorite games, videos, or pictures, the computer uses a special storage space called a hard drive. It's like a giant library where the computer can keep all your precious things safe. And when you want to connect to the internet to play games with friends or watch funny videos, the computer uses something called a network card to send and receive messages through the internet cables or Wi-Fi signals. So, just like your brain helps you learn and play, the computer's processor, memory, graphics card, hard drive, and network card all work together to make your computer a super-smart friend that can help you do amazing things!
Untuk melanjutkan percakapan, tambahkan respons dan pesan lainnya.
messages.append({'role':'model',
'parts':[response.text]})
messages.append({'role':'user',
'parts':["Okay, how about a more detailed explanation to a high school student?"]})
response = model.generate_content(messages)
to_markdown(response.text)
At its core, a computer is a machine that can be programmed to carry out a set of instructions. It consists of several essential components that work together to process, store, and display information: **1. Processor (CPU):** - The brain of the computer. - Executes instructions and performs calculations. - Speed measured in gigahertz (GHz). - More GHz generally means faster processing. **2. Memory (RAM):** - Temporary storage for data being processed. - Holds instructions and data while the program is running. - Measured in gigabytes (GB). - More GB of RAM allows for more programs to run simultaneously. **3. Storage (HDD/SSD):** - Permanent storage for data. - Stores operating system, programs, and user files. - Measured in gigabytes (GB) or terabytes (TB). - Hard disk drives (HDDs) are traditional, slower, and cheaper. - Solid-state drives (SSDs) are newer, faster, and more expensive. **4. Graphics Card (GPU):** - Processes and displays images. - Essential for gaming, video editing, and other graphics-intensive tasks. - Measured in video RAM (VRAM) and clock speed. **5. Motherboard:** - Connects all the components. - Provides power and communication pathways. **6. Input/Output (I/O) Devices:** - Allow the user to interact with the computer. - Examples: keyboard, mouse, monitor, printer. **7. Operating System (OS):** - Software that manages the computer's resources. - Provides a user interface and basic functionality. - Examples: Windows, macOS, Linux. When you run a program on your computer, the following happens: 1. The program instructions are loaded from storage into memory. 2. The processor reads the instructions from memory and executes them one by one. 3. If the instruction involves calculations, the processor performs them using its arithmetic logic unit (ALU). 4. If the instruction involves data, the processor reads or writes to memory. 5. The results of the calculations or data manipulation are stored in memory. 6. If the program needs to display something on the screen, it sends the necessary data to the graphics card. 7. The graphics card processes the data and sends it to the monitor, which displays it. This process continues until the program has completed its task or the user terminates it.
Konfigurasi pembuatan
Argumen generation_config
memungkinkan Anda mengubah parameter pembuatan.
Setiap dialog yang Anda kirim ke model akan menyertakan parameter value yang mengontrol cara
model akan menghasilkan respons.
model = genai.GenerativeModel('gemini-1.5-flash')
response = model.generate_content(
'Tell me a story about a magic backpack.',
generation_config=genai.types.GenerationConfig(
# Only one candidate for now.
candidate_count=1,
stop_sequences=['x'],
max_output_tokens=20,
temperature=1.0)
)
text = response.text
if response.candidates[0].finish_reason.name == "MAX_TOKENS":
text += '...'
to_markdown(text)
Once upon a time, in a small town nestled amidst lush green hills, lived a young girl named...
Langkah berikutnya
- Prompt Design adalah proses pembuatan prompt yang mendatangkan respons dari model bahasa. Menulis prompt yang terstruktur dengan baik adalah bagian penting untuk memastikan respons yang akurat dan berkualitas tinggi dari suatu bahasa model transformer. Pelajari praktik terbaik untuk dialog menulis.
- Gemini menawarkan beberapa variasi model untuk memenuhi kebutuhan berbagai penggunaan kasus, seperti jenis dan kompleksitas input, implementasi untuk chat atau tugas bahasa dialog, dan batasan ukuran. Pelajari ketersediaan Model Gemini.