自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何免費訪問和使用Gemini API?

譯文
開發(fā) 后端 人工智能
學(xué)習(xí)如何使用簡單的Python API將高級的AI多模態(tài)模型集成到項目中。我們在本教程中將學(xué)習(xí)Gemini API以及如何在機器上設(shè)置它。我們還將探究各種Python API函數(shù),包括文本生成和圖像理解。

Gemini是谷歌開發(fā)的一個新模型。有了Gemini可以為查詢提供圖像、音頻和文本,獲得幾乎完美的答案。

我們在本教程中將學(xué)習(xí)Gemini API以及如何在機器上設(shè)置它。我們還將探究各種Python API函數(shù),包括文本生成和圖像理解。

Gemini AI模型介紹

Gemini是谷歌研究院和谷歌DeepMind等團隊合作開發(fā)的新型AI模型。它為多模態(tài)而建,理解并處理不同類型的數(shù)據(jù),比如文本、代碼、音頻、圖像和視頻。

Gemini是谷歌迄今為止開發(fā)的最先進、最龐大的AI模型。它非常靈活,可以從數(shù)據(jù)中心到移動設(shè)備的各種系統(tǒng)上高效運行。這意味著它有望徹底改變企業(yè)和開發(fā)人員構(gòu)建和擴展AI應(yīng)用程序的方式。

以下是針對不同用例設(shè)計的Gemini模型的三個版本:

  • Gemini Ultra:最龐大最先進的AI,能夠執(zhí)行復(fù)雜的任務(wù)。
  • Gemini Pro:一種良好性能和可擴展性兼?zhèn)涞哪P汀?/span>
  • Gemini Nano:最適合移動設(shè)備。

Gemini Ultra具有最先進的性能,在幾個指標(biāo)上超過了GPT-4的性能。它是第一個在大規(guī)模多任務(wù)語言理解基準(zhǔn)測試中超越人類專家的模型,該基準(zhǔn)測試57個不同學(xué)科的世界知識和解決問題的能力。這展示了其先進的理解和解決問題的能力。

設(shè)置

要使用API,我們必須先獲得一個API密鑰,可以從這里獲?。篽ttps://ai.google.dev/tutorials/setup。

然后,點擊“獲取API密鑰”按鈕,隨后點擊“在新項目中創(chuàng)建API密鑰”。

復(fù)制API密鑰并將其設(shè)置為環(huán)境變量。我們使用Deepnote,很容易設(shè)置名為“GEMINI_API_KEY”的密鑰。只要轉(zhuǎn)入到集成,向下滾動并選擇環(huán)境變量。

在下一步中,我們將使用PIP安裝Python API:

pip install -q -U google-generativeai

之后,我們將根據(jù)谷歌的GenAI設(shè)置API密鑰,并初始化實例。

import google.generativeai as genai
import os

gemini_api_key = os.environ["GEMINI_API_KEY"]
genai.configure(api_key = gemini_api_key)

使用Gemini Pro

設(shè)置好API密鑰后,使用Gemini Pro模型生成內(nèi)容就很簡單。向‘generate_content’函數(shù)提供一個提示,將輸出顯示為Markdown。

from IPython.display import Markdown

model = genai.GenerativeModel('gemini-pro')
response = model.generate_content("Who is the GOAT in the NBA?")

Markdown(response.text)

這令人驚訝,但我不同意這個列表。然而,我明白這完全是個人喜好。

Gemini可以為一個提示生成多個響應(yīng),名為候選響應(yīng)。你可以選擇最合適的一個。在本文的例子中,我們只有一個響應(yīng)。

response.candidates

不妨讓它用Python編寫一個簡單的游戲。

response = model.generate_content("Build a simple game in Python")
Markdown(response.text)

結(jié)果很簡單,也很中肯。大多數(shù)LLM開始解釋Python代碼,而不是編寫代碼。

配置響應(yīng)

你可以使用‘generation_config’變量定制響應(yīng)。我們將候選響應(yīng)計數(shù)限制為1,添加停止詞“space”,并設(shè)置最大token和溫度。

response = model.generate_content(
    'Write a short story about aliens.',
    generation_config=genai.types.GenerationConfig(
        candidate_count=1,
        stop_sequences=['space'],
        max_output_tokens=200,
        temperature=0.7)
)
Markdown(response.text)

正如你所見,響應(yīng)在“space“這個單詞前停止了。很神奇。

流式傳輸響應(yīng)

你也可以使用‘stream ’參數(shù)來流式傳輸響應(yīng)。它類似Anthropic和OpenAI API,但速度更快。

model = genai.GenerativeModel('gemini-pro')
response = model.generate_content("Write a Julia function for cleaning the data.", stream=True)

for chunk in response:
    print(chunk.text)

使用Gemini Pro Vision

下面我們將加載Masood Aslami的圖像,并用它來測試Gemini Pro Vision的多模態(tài)性。將圖像加載到“PIL”中并顯示它。

import PIL.Image
img = PIL.Image.open('images/photo-1.jpg')
img

我們有一張奧古斯塔拱門的高質(zhì)量圖像。

不妨加載Gemini Pro Vision模型,并為其提供該圖像。

model = genai.GenerativeModel('gemini-pro-vision')
response = model.generate_content(img)
Markdown(response.text)

該模型準(zhǔn)確地識別了宮殿,并提供了有關(guān)其歷史和建筑的更多信息。

不妨將相同的圖像提供給GPT-4,并向它詢問該圖像。兩種模型都給出了幾乎相似的答案,但我更喜歡GPT-4的響應(yīng)。

我們將向API提供文本和圖像。我們讓Vision模型用圖像作為參考寫一篇旅游博文。

response = model.generate_content(["Write a travel blog post using the image as reference.", img])
Markdown(response.text)

它為我提供了一個簡短的博文,我原以為是更長的格式。

與GPT-4相比,Gemini Pro Vision模型難以生成長格式博文。

聊天對話會話

我們可以設(shè)置模型進行來回的聊天會話。這樣一來,模型可以使用之前的對話記住上下文和響應(yīng)。

在本文中,我們已開始了聊天會話,并要求模型幫助我開始Dota 2游戲。

model = genai.GenerativeModel('gemini-pro')
chat = model.start_chat(history=[])
chat.send_message("Can you please guide me on how to start playing Dota 2?")
chat.history

如你所見,“chat”對象保存用戶和模式聊天的歷史記錄。

我們還可以以Markdown樣式顯示它們。

for message in chat.history:
    display(Markdown(f'**{message.role}**: {message.parts[0].text}'))

不妨問一個緊跟的問題。

chat.send_message("Which Dota 2 heroes should I start with?")
for message in chat.history:
    display(Markdown(f'**{message.role}**: {message.parts[0].text}'))

我們可以向下滾動,并查看模型的整個會話。

使用嵌入

嵌入模型在上下文感知應(yīng)用程序中越來越受歡迎。Gemini embedding-001模型允許將單詞、句子或整個文檔表示為編碼語義含義的密集向量。這種向量表示可以通過比較不同文本片段對應(yīng)的嵌入向量來方便地比較它們之間的相似性。

我們可以將內(nèi)容提供給“embed_content”,并將文本轉(zhuǎn)換為嵌入。就是這么簡單。

output = genai.embed_content(
    model="models/embedding-001",
    content="Can you please guide me on how to start playing Dota 2?",
    task_type="retrieval_document",
    title="Embedding of Dota 2 question")
print(output['embedding'][0:10])
[0.060604308, -0.023885584, -0.007826327, -0.070592545, 0.021225851, 0.043229062, 0.06876691, 0.049298503, 0.039964676, 0.08291664]

我們可以通過將字符串列表傳遞給“content”參數(shù),將多個文本塊轉(zhuǎn)換為嵌入。

output = genai.embed_content(
    model="models/embedding-001",
    content=[
        "Can you please guide me on how to start playing Dota 2?",
        "Which Dota 2 heroes should I start with?",
    ],
    task_type="retrieval_document",
    title="Embedding of Dota 2 question")
for emb in output['embedding']:
    print(emb[:10])
[0.060604308, -0.023885584, -0.007826327, -0.070592545, 0.021225851, 0.043229062, 0.06876691, 0.049298503, 0.039964676, 0.08291664]

[0.04775657, -0.044990525, -0.014886052, -0.08473655, 0.04060122, 0.035374347, 0.031866882, 0.071754575, 0.042207796, 0.04577447]

如果重現(xiàn)同樣的結(jié)果時遇到麻煩,請查看Deepnote工作區(qū)(https://deepnote.com/workspace/abid-5efa63e7-7029-4c3e-996f-40e8f1acba6f/project/How-to-Access-and-Use-Gemini-API-55818013-847a-46c6-ac51-9c814955f5cd/notebook/Notebook%201-af572259a2374c39a21eb31a63dc23a7https://deepnote.com/workspace/abid-5efa63e7-7029-4c3e-996f-40e8f1acba6f/project/How-to-Access-and-Use-Gemini-API-55818013-847a-46c6-ac51-9c814955f5cd/notebook/Notebook%201-af572259a2374c39a21eb31a63dc23a7)。

結(jié)語

有很多高級函數(shù)在本入門教程中并沒有介紹可以通過Gemini API: Python快速入門了解關(guān)于Gemini API的更多信息:https://ai.google.dev/tutorials/python_quickstart#generate_text_from_text_inputs.

我們在本教程中學(xué)習(xí)了Gemini以及如何訪問Python API來生成響應(yīng)。尤其是,我們學(xué)習(xí)了文本生成、視覺理解、流傳輸、對話歷史、自定義輸出和嵌入。然而,Gemini的功能太強大了,本文只涉及皮毛。

原文標(biāo)題:How to Access and Use Gemini API for Free,作者:Abid Ali Awan

責(zé)任編輯:姜華 來源: 51CTO
相關(guān)推薦

2024-12-23 08:00:00

2024-10-28 19:36:05

2023-06-26 10:51:56

開源API

2023-11-23 08:00:00

OpenAILangChain

2024-04-23 08:16:21

2025-02-14 08:00:00

人工智能Gemini 2.0LLM

2020-01-16 11:42:45

PyramidCornicePython Web

2024-02-29 09:00:00

AI模型人工智能機器學(xué)習(xí)

2022-05-31 07:40:41

ArctypeFeather.jsSQLite

2012-08-27 09:28:07

JavaPython

2009-09-02 15:08:47

2021-05-03 11:50:21

resuestsPython軟件開發(fā)

2025-02-26 08:24:35

編程工具編程語言谷歌

2017-09-11 06:47:59

TensorFlowAPI數(shù)據(jù)集

2019-08-06 08:00:00

API設(shè)計API開發(fā)測試工具

2013-04-27 10:07:51

飛利浦

2011-04-06 17:30:46

ACL

2009-07-30 21:22:02

ACL限制外界訪問網(wǎng)絡(luò)安全

2019-01-23 10:00:35

Windows 10錄制屏幕音頻

2022-05-27 17:30:46

漏洞網(wǎng)絡(luò)攻擊
點贊
收藏

51CTO技術(shù)棧公眾號