* wrapper Python อย่างไม่เป็นทางการ python-gemini-api มีให้สำหรับผู้ใช้ที่ประสบปัญหาการตรวจสอบสิทธิ์บ่อยครั้งหรือไม่สามารถใช้ Google Authentication ได้ Wrapper นี้ใช้ค่าคุกกี้เพื่อโต้ตอบกับ Google Gemini ผ่านการวิศวกรรมย้อนกลับ โครงการนี้เกี่ยวข้องกับความร่วมมือกับ Antonio Cheong
ในด้านทางการ Google มอบ Gemini API และ SDK อย่างเป็นทางการที่สะอาดและฟรีบางส่วน ซึ่งสามารถเข้าถึงและใช้งานได้อย่างราบรื่นผ่านแพ็คเกจ Python, google-generativeai
เคล็ดลับ
- 2024-03-26 | [ดูตัวอย่างโค้ด]
ลองใช้ Open-source LLM API ฟรีชั่วคราวด้วย Open Router (จำกัดฟรี: 10 คำขอ/นาที)
- 2024-05-20 | มีการเปลี่ยนแปลงตรรกะบางอย่างขึ้นอยู่กับภูมิภาค/ประเทศ (IP) และบัญชี ผู้ใช้จำเป็นต้องตรวจสอบสิ่งต่อไปนี้เพื่อค้นหาตรรกะที่เหมาะสมสำหรับตนเอง แพ็คเกจยังคงเหมาะสมกับการใช้งานทั่วไป
BOT_SERVER
ใน const.pyself._sid
ใน client.pyself._rcid
ใน client.py- กระดาษ | เว็บไซต์อย่างเป็นทางการ | API อย่างเป็นทางการ | เอกสาร API |
Gemini เป็นตระกูลโมเดล AI เจนเนอเรชั่นที่พัฒนาโดย Google DeepMind ซึ่งออกแบบมาสำหรับกรณีการใช้งานหลายรูปแบบ Gemini API ช่วยให้คุณเข้าถึงโมเดล Gemini Pro และ Gemini Pro Vision ในเดือนกุมภาพันธ์ 2024 บริการ Bard ของ Google เปลี่ยนเป็น Gemini
แบบอย่าง | พิมพ์ | เข้าถึง | รายละเอียด |
---|---|---|---|
ราศีเมถุน | กรรมสิทธิ์ | เอพีไอ [13] | AI ต่อเนื่องหลายรูปแบบที่เป็นกรรมสิทธิ์ของ Google DeepMind รวมถึงโมเดลขั้นสูง เช่น Gemini Pro และ Gemini Pro Vision การเข้าถึงถูกจำกัดเฉพาะการใช้งาน API; สามารถรับข้อมูลเชิงลึกเพิ่มเติมได้ผ่านทางเอกสารและเว็บไซต์ [1][2] |
เจมม่า | โอเพ่นซอร์ส | ดาวน์โหลดได้ API ฟรี | โมเดลภาษาแบบข้อความเป็นข้อความแบบโอเพ่นซอร์สที่เหมาะสำหรับงานต่างๆ เช่น QA และการสรุป สามารถดาวน์โหลดตุ้มน้ำหนักเพื่อการใช้งานในองค์กรได้ และจะมีการจัดเตรียมเอกสารโดยละเอียดไว้ทางเอกสารและเว็บไซต์ [3][4] |
โค้ดเจมม่า | โอเพ่นซอร์ส | ดาวน์โหลดได้ | โมเดลโอเพ่นซอร์สนี้ได้รับการออกแบบมาโดยเฉพาะสำหรับงานการเขียนโปรแกรม โดยมีน้ำหนักที่ดาวน์โหลดได้เพื่อช่วยนักพัฒนาในการสร้างโค้ดและกิจกรรมที่คล้ายกัน โปรดดูรายงานที่เกี่ยวข้อง โพสต์ในบล็อก และคอลเลกชัน Hugging Face สำหรับข้อมูลเพิ่มเติม [5][6][7] |
นี่คือ wrapper Python ที่ได้มาจากโครงการ Bard API ซึ่งออกแบบมาเพื่อดึงการตอบสนองจาก Gemini Web ในรูปแบบ REST ไคลเอนต์แบบซิงโครนัสเป็นที่ต้องการมากกว่าไคลเอนต์แบบอะซิงโครนัสสำหรับ Gemini เนื่องจากการจำกัดอัตราและการบล็อกข้อกังวล
pip install python-gemini-api
pip install git+https://github.com/dsdanielpark/Gemini-API.git
สำหรับเวอร์ชันที่อัปเดต ให้ใช้ดังนี้:
pip install -q -U python-gemini-api
ไปที่ https://gemini.google.com/
เมื่อเปิดเบราว์เซอร์ ให้ลองรวบรวมคุกกี้อัตโนมัติก่อน
from gemini import Gemini
client = Gemini ( auto_cookies = True )
# Testing needed as cookies vary by region.
# client = Gemini(auto_cookies=True, target_cookies=["__Secure-1PSID", "__Secure-1PSIDTS"])
# client = Gemini(auto_cookies=True, target_cookies="all") # You can pass whole cookies
response = client . generate_content ( "Hello, Gemini. What's the weather like in Seoul today?" )
print ( response . payload )
(ด้วยตนเอง) F12
สำหรับคอนโซลเบราว์เซอร์ → Session: Application
→ Cookies
→ คัดลอกค่าของชุดคุกกี้ที่ใช้งานได้บางชุด หากไม่ได้ผล ให้ไปที่ขั้นตอนที่ 3
ขั้นแรกให้ลอง __Secure-1PSIDCC
เพียงอย่างเดียว หากไม่ได้ผล ให้ใช้ __Secure-1PSID
และ __Secure-1PSIDTS
ยังไม่ประสบความสำเร็จใช่ไหม? ลองใช้คุกกี้ทั้งสี่นี้: __Secure-1PSIDCC
, __Secure-1PSID
, __Secure-1PSIDTS
, NID
หากไม่ได้ผล ให้ดำเนินการขั้นตอนที่ 3 และพิจารณาส่งไฟล์คุกกี้ทั้งหมด
(แนะนำ) ส่งออกคุกกี้ไซต์ Gemini ผ่านส่วนขยายเบราว์เซอร์ ตัวอย่างเช่น ใช้ส่วนขยาย Chrome ExportThisCookies เปิดและคัดลอกเนื้อหาไฟล์ txt
สำคัญ
ทดลองใช้บัญชี Google และการตั้งค่าเบราว์เซอร์ต่างๆ เพื่อค้นหาคุกกี้ที่ใช้งานได้ ความสำเร็จอาจแตกต่างกันไปตาม IP และสถานะบัญชี เมื่อเชื่อมต่อแล้ว โดยทั่วไปคุกกี้จะยังคงมีผลใช้งานนานกว่าหนึ่งเดือน ทดสอบต่อไปจนกว่าจะสำเร็จ
สร้างเนื้อหา: ส่งคืนการตอบสนองแบบแยกวิเคราะห์
from gemini import Gemini cookies = { "" : "" } # Cookies may vary by account or region. Consider sending the entire cookie file. client = Gemini ( cookies = cookies ) # You can use various args response = client . generate_content ( "Hello, Gemini. What's the weather like in Seoul today?" ) response . payload
สร้างเนื้อหาจากรูปภาพ: คุณสามารถใช้รูปภาพเป็นอินพุตได้
from gemini import Gemini cookies = { "" : "" } client = Gemini ( cookies = cookies ) # You can use various args response = client . generate_content ( "What does the text in this image say?" , image = 'folder/image.jpg' ) response . payload
บันทึก
หากเมธอด create_content ส่งคืนเพย์โหลดว่าง ให้ลองดำเนินการอีกครั้งโดยไม่ต้องกำหนดค่าเริ่มต้นอ็อบเจ็กต์ Gemini ใหม่
การตั้งค่าภาษาและเวอร์ชันราศีเมถุนโดยใช้ตัวแปรสภาพแวดล้อม:
การตั้งค่าภาษาตอบกลับของราศีเมถุน (ไม่บังคับ): ตรวจสอบภาษาที่รองรับที่นี่ ค่าเริ่มต้นคือภาษาอังกฤษ
import os
os . environ [ "GEMINI_LANGUAGE" ] = "KR" # Setting Gemini response language (Optional)
os . environ [ "GEMINI_ULTRA" ] = "1" # Switch to Gemini-advanced response (Experimental, Optional)
# In some accounts, access to Gemini Ultra may not be available. If that's the case, please revert it back to "0".
โปรดประกาศ cookies
ในรูปแบบ dict อย่างชัดเจน คุณยังสามารถป้อนเส้นทางไปยังไฟล์ที่มีคุกกี้ด้วย cookie_fp
(รองรับ *.json, *.txt) ตรวจสอบไฟล์คุกกี้ตัวอย่างในโฟลเดอร์ทรัพย์สิน
from gemini import Gemini
cookies = {
"__Secure-1PSIDCC" : "value" ,
"__Secure-1PSID" : "value" ,
"__Secure-1PSIDTS" : "value" ,
"NID" : "value" ,
# Cookies may vary by account or region. Consider sending the entire cookie file.
}
client = Gemini ( cookies = cookies )
# client = Gemini(cookie_fp="folder/cookie_file.json") # (*.json, *.txt) are supported.
# client = Gemini(auto_cookies=True) # Or use auto_cookies paprameter
เพื่อให้ auto_cookie
ตั้งค่าเป็น True
และปรับ target_cookies
Gemini WebUI จะต้องใช้งานอยู่ในเบราว์เซอร์ browser_cookie3 เปิดใช้งานการรวบรวมคุกกี้อัตโนมัติ แม้ว่าการอัปเดตอาจยังไม่เสร็จสมบูรณ์ก็ตาม
ส่งกลับคำตอบของ Gemini แต่คำตอบแรกอาจว่างเปล่า
from gemini import Gemini
cookies = {}
client = Gemini ( cookies = cookies )
prompt = "Tell me about Large Language Model."
response = client . generate_content ( prompt )
print ( response . payload )
สำคัญ
อย่าส่งข้อความแจ้งเดียวกันซ้ำๆ หากเซสชันเชื่อมต่อได้สำเร็จและ generate_content
ทำงานได้ดี ให้ปิดเว็บไซต์ Gemini หากเว็บ Gemini ยังคงเปิดอยู่ในเบราว์เซอร์ คุกกี้อาจหมดอายุเร็วขึ้น
เอาต์พุตของฟังก์ชัน Generate_content คือ GeminiModelOutput
โดยมีโครงสร้างต่อไปนี้:
ราศีเมถุน-API/gemini/src/model/output.py
บรรทัดที่ 16 ใน fdf064c
ส่งคำขอ: ส่งคืนเพย์โหลดและ status_code ของคำขอ ทำให้การแก้ไขจุดบกพร่องง่ายขึ้น
from gemini import Gemini
cookies = {}
client = Gemini ( cookies = cookies )
response_text , response_status = client . send_request ( "Hello, Gemini. Tell me about Large Language Models." )
print ( response_text )
คุณสามารถติดตามจำนวนคำขอทั้งหมดที่ทำได้โดยการเข้าถึงคุณสมบัติ request_count
ภายในคลาส Gemini
ส่งกลับข้อความที่สร้างโดยราศีเมถุน
from gemini import Gemini
cookies = {}
client = Gemini ( cookies = cookies )
prompt = "Hello, Gemini. Tell me about Large Language Models."
response = client . generate_content ( prompt )
print ( response . text )
ส่งกลับรูปภาพที่สร้างโดยราศีเมถุน
โปรแกรมดาวน์โหลด Async
from gemini import Gemini , GeminiImage
cookies = {}
client = Gemini ( cookies = cookies )
response = client . generate_content ( "Hello, Gemini. Tell me about Large Language Models." )
generated_images = response . generated_images # Check generated images [Dict]
await GeminiImage . save ( generated_images , "output" , cookies )
# image_data_dict = await GeminiImage.fetch_images_dict(generated_images, cookies)
# await GeminiImage.save_images(image_data_dict, "output")
แสดงภาพใน IPython คุณสามารถแสดงภาพหรือส่งไปยังแอปพลิเคชันอื่นในรูปแบบไบต์ได้
import io
from gemini import Gemini , GeminiImage
from IPython . display import display , Image
cookies = {}
client = Gemini ( cookies = cookies )
bytes_images_dict = GeminiImage . fetch_images_dict_sync ( generated_images , cookies ) # Get bytes images dict
for image_name , image_bytes in bytes_images_dict . items ():
print ( image_name )
image = Image ( data = image_bytes )
display ( image )
เครื่องมือดาวน์โหลดซิงค์
from gemini import Gemini , GeminiImage
cookies = {}
client = Gemini ( cookies = cookies )
response = client . generate_content ( "Create illustrations of Seoul, South Korea." )
generated_images = response . generated_images # Check generated images [Dict]
GeminiImage . save_sync ( generated_images , save_path = "output" , cookies = cookies )
# You can use byte type image dict for printing images as follow:
# bytes_images_dict = GeminiImage.fetch_images_dict_sync(generated_images, cookies) # Get bytes images dict
# GeminiImage.save_images_sync(bytes_images_dict, path="output") # Save to dir
Wrapper ดาวน์โหลด Async
import asyncio
from gemini import GeminiImage
async def save_generated_images ( generated_images , save_path = "output" , cookies = cookies ):
await GeminiImage . save ( generated_images , save_path = save_path , cookies = cookies )
# Run the async function
if __name__ == "__main__" :
cookies = {}
client = Gemini ( cookies = cookies )
response = client . generate_content ( "Create illustrations of Seoul, South Korea." )
generated_images = response . generated_images
asyncio . run ( save_generated_images ( generated_images , save_path = "output" , cookies = cookies ))
ตรรกะของเมธอด GeminiImage.save
import asyncio
from gemini import Gemini , GeminiImage
async def save_generated_images ( generated_images , save_path = "output" , cookies = cookies ):
image_data_dict = await GeminiImage . fetch_images_dict ( generated_images , cookies ) # Get bytes images dict asynchronously
await GeminiImage . save_images ( image_data_dict , save_path = save_path )
# Run the async function
if __name__ == "__main__" :
cookies = {}
client = Gemini ( cookies = cookies )
response = client . generate_content ( "Create illustrations of Seoul, South Korea." )
generated_images = response . generated_images
asyncio . run ( save_generated_images ( generated_images , save_path = "output" , cookies = cookies ))
บันทึก
ใช้ GeminiImage ในการประมวลผลภาพ web_images
ทำงานได้โดยไม่ต้องมีคุกกี้ แต่สำหรับรูปภาพเช่น generated_image
จาก Gemini ให้ส่งคุกกี้ จำเป็นต้องใช้คุกกี้เพื่อดาวน์โหลดภาพจากที่เก็บข้อมูลของ Google ตรวจสอบการตอบสนองหรือใช้ตัวแปรคุกกี้ที่มีอยู่
ส่งกลับรูปภาพเพื่อตอบสนองต่อราศีเมถุน
โปรแกรมดาวน์โหลด Async
from gemini import Gemini , GeminiImage
cookies = {}
client = Gemini ( cookies = cookies )
response = client . generate_content ( "Give me a picture of Stanford." )
response_images = response . web_images # Check generated images
await GeminiImage . save ( response_images , "output" )
# image_data_dict = await GeminiImage.fetch_images_dict(response_images)
# await GeminiImage.save_images(image_data_dict, "output")
เครื่องมือดาวน์โหลดซิงค์
from gemini import Gemini , GeminiImage
cookies = {}
client = Gemini ( cookies = cookies )
response = client . generate_content ( "Give me a picture of Stanford." )
response_images = response . web_images # Check response images
GeminiImage . save_sync ( response_images , save_path = "output" )
# You can use byte type image dict as follow:
# bytes_images_dict = GeminiImage.fetch_bytes_sync(response_images) # Get bytes images dict
# GeminiImage.save_images_sync(bytes_images_dict, save_path="output") # Save to path
Wrapper ดาวน์โหลด Async
import asyncio
from gemini import Gemini , GeminiImage
async def save_response_web_imagse ( response_images , save_path = "output" ):
await GeminiImage . save ( response_images , save_path = save_path )
if __name__ == "__main__" :
cookies = {}
client = Gemini ( cookies = cookies )
response = client . generate_content ( "Give me a picture of Stanford." )
response_images = response . web_images
asyncio . run ( save_response_web_imagse ( response_images , save_path = "output" ))
ตรรกะของเมธอด GeminiImage.save
import asyncio
from gemini import Gemini , GeminiImage
async def save_response_web_imagse ( response_images , save_path = "output" ):
image_data_dict = await GeminiImage . fetch_images_dict ( response_images ) # Get bytes images dict asynchronously
await GeminiImage . save_images ( image_data_dict , save_path = save_path )
# Run the async function
if __name__ == "__main__" :
cookies = {}
client = Gemini ( cookies = cookies )
response = client . generate_content ( "Give me a picture of Stanford." )
response_images = response . web_images
asyncio . run ( save_response_web_imagse ( response_images , save_path = "output" ))
ใช้รูปภาพเป็นอินพุตและส่งกลับการตอบกลับ
image = 'folder/image.jpg'
# image = open('folder/image.jpg', 'rb').read() # (jpg, jpeg, png, webp) are supported.
# Image file path or Byte-formatted image array
response = client . generate_content ( "What does the text in this image say?" , image = image )
print ( response )
ในการเริ่มต้น คุณต้องลิงก์ Google Workspace เพื่อเปิดใช้งานส่วนขยายนี้ผ่านส่วนขยายเว็บ Gemini โปรดดูประกาศอย่างเป็นทางการและตรวจสอบนโยบายความเป็นส่วนตัวสำหรับรายละเอียดเพิ่มเติม
ธงส่วนขยาย
@Gmail, @Google Drive, @Google Docs, @Google Maps, @Google Flights, @Google Hotels, @YouTube
response = client . generate_content ( "@YouTube Search clips related with Google Gemini" )
response . response_dict
Google เวิร์คสเปซ
Google แผนที่
Google เที่ยวบิน
โรงแรมกูเกิล
ยูทูบ
คุณสามารถระบุการตอบสนองเฉพาะได้โดยการตั้งค่า Response Candidate ID (RCID)
# Generate content for the prompt "Give me some information about the USA."
response1 = client . generate_content ( "Give me some information about the USA." )
# After reviewing the responses, choose the one you prefer and copy its RCID.
client . rcid = "rc_xxxx"
# Now, generate content for the next prompt "How long does it take from LA to New York?"
response2 = client . generate_content ( "How long does it take from LA to New York?" )
# However, RCID may not persist. If parsing fails, reset `client.rcid` to None.
# client.rcid = None
ในราศีเมถุน Generate_content ส่งคืนการตอบกลับแรก สิ่งนี้อาจแตกต่างกันไปขึ้นอยู่กับความยาวหรือการเรียงลำดับ ดังนั้นคุณสามารถระบุดัชนีของการตอบสนองที่เลือกได้ตั้งแต่ 0 ถึง n ดังนี้ อย่างไรก็ตาม หากมีการตอบกลับเพียงรายการเดียว ให้เปลี่ยนกลับเป็น 0
from gemini import GeminiModelOutput
GeminiModelOutput . chosen = 1 # default is 0
response_choice_1 = client . generate_content ( "Give me some information about the USA." )
# If not all Gemini returns are necessarily plural, revert back to 0 in case of errors.
# GeminiModelOutput.chosen = 0
แยกวิเคราะห์ข้อความตอบกลับเพื่อแยกค่าที่ต้องการ
การใช้ Gemini.generate_custom_content
ระบุการแยกวิเคราะห์แบบกำหนดเองเพื่อแยกค่าเฉพาะ ใช้ ParseMethod1 และ ParseMethod2 เป็นค่าเริ่มต้น และคุณสามารถส่งวิธีแยกวิเคราะห์แบบกำหนดเองเป็นอาร์กิวเมนต์ได้หากต้องการ อ้างถึง custom_parser.py
# You can create a parser method that takes response_text as the input for custom_parser.
response_text , response_status = client . send_request ( "Give me some information about the USA." )
# Use custom_parser function or class inheriting from BaseParser
response = client . generate_custom_content ( "Give me some information about the USA." , * custom_parser )
ราศีเมถุน-API/gemini/client.py
บรรทัด 323 ใน 31b8424
หากคุณต้องการ หลีกเลี่ยงคำขอและการแบนที่ถูกบล็อก ให้ใช้ Smart Proxy โดย Crawlbase มันส่งต่อคำขอการเชื่อมต่อของคุณไปยัง ที่อยู่ IP ที่หมุนเวียนแบบสุ่ม ในกลุ่มพรอกซีก่อนที่จะไปถึงเว็บไซต์เป้าหมาย การรวมกันของ AI และ ML ทำให้การหลีกเลี่ยง CAPTCHA และการบล็อกมีประสิทธิภาพมากขึ้น อาจจำเป็นต้องเพิ่มอาร์กิวเมนต์ที่ระดับ Secure Sockets Layer (SSL) ในส่วนหัว ใช้ร่วมกับ verify=False
# Get your proxy url at crawlbase https://crawlbase.com/docs/smart-proxy/get/
proxy_url = "http://xxxxx:@smartproxy.crawlbase.com:8012"
proxies = { "http" : proxy_url , "https" : proxy_url }
client = Gemini ( cookies = cookies , proxies = proxies , timeout = 30 , verify = False )
client . session . header [ "crawlbaseAPI-Parameters" ] = "country=US"
client . generate_content ( "Hello, Gemini. Give me a beautiful photo of Seoul's scenery." )
สำหรับกรณีมาตรฐาน ให้ใช้คลาสราศีเมถุน สำหรับข้อยกเว้น ให้ใช้อ็อบเจ็กต์เซสชัน เมื่อสร้างเซิร์ฟเวอร์บอท Gemini ใหม่ ให้ปรับ Headers.MAIN
import requests
from gemini import Gemini , Headers
cookies = {}
session = requests . Session ()
session . headers = Headers . MAIN
for key , value in cookies . items ():
session . cookies . update ({ key : value })
client = Gemini ( session = session ) # You can use various args
response = client . generate_content ( "Hello, Gemini. Tell me about Large Language Model." )
สำรวจคุณสมบัติเพิ่มเติมในเอกสารนี้
หากคุณต้องการพัฒนาโค้ดง่ายๆ ของคุณเอง คุณสามารถเริ่มจากตัวอย่างโค้ดง่ายๆ นี้
เตรียมรายการที่จำเป็นและรับคีย์ API ที่ Google AI Studio ติดตั้งบน Python 3.9 หรือสูงกว่าแล้วป้อนคีย์ API ที่ออกให้ อ้างอิงถึงบทช่วยสอนสำหรับรายละเอียด
pip install -q -U google-generativeai
import google . generativeai as genai
GOOGLE_API_KEY = ""
genai . configure ( api_key = GOOGLE_API_KEY )
model = genai . GenerativeModel ( 'gemini-pro' )
response = model . generate_content ( "Write me a poem about Machine Learning." )
print ( response . text )
หากคุณมีทรัพยากร GPU เพียงพอ คุณสามารถดาวน์โหลดน้ำหนักได้โดยตรง แทนที่จะใช้ Gemini API เพื่อสร้างเนื้อหา ลองใช้ Gemma และ Code Gemma ซึ่งเป็นโมเดลโอเพ่นซอร์ส ที่พร้อมใช้งานในองค์กร
โมเดล Gemma คือโมเดลภาษาแบบข้อความเป็นข้อความขั้นสูงและแบบถอดรหัสเท่านั้นที่มีน้ำหนักเบาของ Google ซึ่งได้มาจากการวิจัยของ Gemini มีให้บริการเป็นภาษาอังกฤษ โดยมีน้ำหนักแบบเปิดและรูปแบบต่างๆ เหมาะสำหรับงานต่างๆ เช่น การตอบคำถามและการสรุป สำหรับข้อมูลเพิ่มเติม โปรดดูที่การ์ดโมเดล Gemma-7b
from transformers import AutoTokenizer , AutoModelForCausalLM
tokenizer = AutoTokenizer . from_pretrained ( "google/gemma-7b" )
model = AutoModelForCausalLM . from_pretrained ( "google/gemma-7b" )
input_text = "Write me a poem about Machine Learning."
input_ids = tokenizer ( input_text , return_tensors = "pt" )
outputs = model . generate ( ** input_ids )
print ( tokenizer . decode ( outputs [ 0 ]))
CodeGemma ซึ่งเป็นเวอร์ชันอย่างเป็นทางการจาก Google สำหรับ Code LLM ได้รับการเผยแพร่เมื่อวันที่ 9 เมษายน 2024 โดยมีโมเดล 3 รุ่นที่ออกแบบมาโดยเฉพาะสำหรับการสร้างและการโต้ตอบกับโค้ด คุณสามารถสำรวจโมเดล Code Gemma และดูการ์ดโมเดลเพื่อดูรายละเอียดเพิ่มเติมได้
from transformers import GemmaTokenizer , AutoModelForCausalLM
tokenizer = GemmaTokenizer . from_pretrained ( "google/codegemma-7b-it" )
model = AutoModelForCausalLM . from_pretrained ( "google/codegemma-7b-it" )
input_text = "Write me a Python function to calculate the nth fibonacci number."
input_ids = tokenizer ( input_text , return_tensors = "pt" )
outputs = model . generate ( ** input_ids )
print ( tokenizer . decode ( outputs [ 0 ]))
OpenRouter เสนอการอนุมานฟรีชั่วคราวสำหรับบางรุ่น รับคีย์ API จาก Open Router API และตรวจสอบรุ่นฟรีที่รุ่น Open Router ใช้โมเดลที่มีราคาโทเค็น 0 ดอลลาร์เป็นหลัก รุ่นอื่นๆ อาจมีค่าใช้จ่าย ดูเพิ่มเติมที่คู่มือโอเพ่นซอร์ส LLM API ฟรี
ไคลเอนต์ Sync ได้รับความนิยมมากกว่า async สำหรับ Gemini เนื่องจากการจำกัดอัตราและการบล็อกปัญหา แต่ OpenRouter เสนอ LLM โอเพ่นซอร์สที่เชื่อถือได้สำหรับการนำ async ไปใช้ (จำกัดฟรี: 10 คำขอ/นาที)
from gemini import OpenRouter
OPENROUTER_API_KEY = ""
gemma_client = OpenRouter ( api_key = OPENROUTER_API_KEY , model = "google/gemma-7b-it:free" )
prompt = "Do you know UCA academy in Korea? https://blog.naver.com/ulsancoding"
response = gemma_client . create_chat_completion ( prompt )
print ( response )
# payload = gemma_client.generate_content(prompt)
# print(payload.json())
รายการโมเดลฟรีประกอบด้วย:
google/gemma-7b-it:free
- google/gemma-7b จาก Google ***mistralai/mistral-7b-instruct:free
- missralai/Mistral-7B-Instruct-v0.1 สำหรับคำแนะนำจาก Mistral AI ****huggingfaceh4/zephyr-7b-beta:free
- HuggingFaceH4/zephyr-7b-beta ***openchat/openchat-7b:free
- openchat/openchat สำหรับการแชท **openrouter/cinematika-7b:free
- jondurbin/cinematika-7b-v0.1undi95/toppy-m-7b:free
- Undi95/toppy-M-7Bgryphe/mythomist-7b:free
- Gryphe/MythoMist-7bnousresearch/nous-capybara-7b:free
- NousResearch/Nous-Capybara-7B-V1 จาก Nous Research ใช้ Crawlbase API เพื่อการคัดลอกข้อมูลที่มีประสิทธิภาพเพื่อฝึกโมเดล AI โดยมีอัตราความสำเร็จ 98% และสถานะการออนไลน์ 99.9% เริ่มต้นอย่างรวดเร็ว เป็นไปตาม GDPR/CCPA รองรับการดึงข้อมูลจำนวนมาก และได้รับความไว้วางใจจากนักพัฒนากว่า 70,000 คน
ก่อนอื่นให้ตรวจสอบ HanaokaYuzu/Gemini-API และ Google Gemini API อย่างเป็นทางการก่อนใช้แพ็คเกจนี้ คุณสามารถขอความช่วยเหลือได้มากที่สุดในหน้าคำถามที่พบบ่อยและปัญหา
ขอขอบคุณอย่างจริงใจสำหรับรายงานเกี่ยวกับคุณสมบัติหรือข้อบกพร่องใหม่ๆ ข้อเสนอแนะอันมีค่าของคุณเกี่ยวกับโค้ดได้รับการชื่นชมอย่างสูง ข้อผิดพลาดบ่อยครั้งอาจเกิดขึ้นเนื่องจากการเปลี่ยนแปลงในอินเทอร์เฟซ API บริการของ Google เรายินดีต้อนรับทั้งรายงานปัญหาและคำขอดึงที่มีส่วนช่วยในการปรับปรุงเสมอ เรามุ่งมั่นที่จะรักษาชุมชนที่เปิดกว้างและกระตือรือร้น
จงขุดบ่อน้ำเสียก่อนจะกระหาย
เราอยากจะแสดงความขอบคุณอย่างจริงใจต่อผู้มีส่วนร่วมทุกคน
แพ็คเกจนี้มีจุดมุ่งหมายเพื่อนำฟังก์ชันการทำงานของ Bard API มาใช้ใหม่ ซึ่งได้รับการจัดเก็บถาวรเพื่อการมีส่วนร่วมของชุมชนโอเพ่นซอร์สอันเป็นที่รัก แม้ว่า API อย่างเป็นทางการของ Gemini จะพร้อมใช้งานแล้วก็ตาม
ผู้มีส่วนร่วมใน Bard API และ Gemini API
จำเป็นต้องมีการปรับเปลี่ยนไคลเอนต์ async โดยใช้ตรรกะของฉัน พร้อมกับการรวบรวมคุกกี้อัตโนมัติผ่าน browser_cookie3 และการใช้งานคุณสมบัติ Bard API อื่น ๆ (เช่นการแยกโค้ด ส่งออกไปยัง Replit การวาดกราฟ ฯลฯ )
โปรดทราบว่าในขณะที่ตรวจสอบการรวบรวมคุกกี้อัตโนมัติ ดูเหมือนว่าคุกกี้จะหมดอายุทันทีเมื่อมีการส่งคำขอให้รวบรวม ความพยายามที่จะทำให้เป็นมิตรกับผู้ใช้มากขึ้นไม่ประสบความสำเร็จ นอกจากนี้ ดูเหมือนว่าค่า _sid จะทำงานตามปกติแม้ว่าจะส่งคืนเป็นไม่มีก็ตาม
สุดท้ายนี้ ถ้าอัลกอริทึม CustomParser และ ResponseParser ทำงานไม่ถูกต้อง วิธีการแยกวิเคราะห์ใหม่สามารถอัปเดตผ่านคำสั่งแบบมีเงื่อนไขในส่วนที่เกี่ยวข้องได้
ฉันไม่ได้วางแผนที่จะดูแลจัดการพื้นที่เก็บข้อมูลนี้อย่างจริงจัง โปรดตรวจสอบ HanaokaYuzu/Gemini-API ก่อน
ขอบคุณและมีวันที่ดี
ใบอนุญาต MIT ปี 2024 เราขอปฏิเสธความรับผิดทางกฎหมายทั้งโดยชัดแจ้งหรือโดยปริยายที่เกี่ยวข้องกับผลงานของเรา ผู้ใช้จำเป็นต้องใช้แพ็คเกจนี้ด้วยความรับผิดชอบและเป็นความเสี่ยงของตนเอง โครงการนี้เป็นความคิดริเริ่มส่วนบุคคลและไม่มีส่วนเกี่ยวข้องหรือรับรองโดย Google ขอแนะนำให้ใช้ API อย่างเป็นทางการของ Google
คำเตือน ผู้ใช้จะต้องรับผิดชอบทางกฎหมายอย่างเต็มที่สำหรับ GeminiAPI ไม่ได้รับการรับรองจาก Google การใช้งานมากเกินไปอาจนำไปสู่การจำกัดบัญชี การเปลี่ยนแปลงนโยบายหรือสถานะบัญชีอาจส่งผลต่อการทำงาน ใช้หน้าประเด็นปัญหาและการอภิปราย
Python 3.7 หรือสูงกว่า