昨天成功重灌 Pi 3A+ 的 Bulleye 後嘗試安裝 langchain-core, 結果因為版本衝突不順利, 且就算安裝成功, 由於 Pi 3A+ 只有 512MB DRAM, 跑 langchain 太沉重了只好放棄, 改為安裝原生 SDK. 安裝 openai 套件成功且可順利匯入 :
pi@pi3aplus:~ $ pip install openai
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting openai
...(略)...
Installing collected packages: openai
Successfully installed openai-2.32.0
pi@pi3aplus:~ $ python
Python 3.9.2 (default, Jan 24 2026, 09:41:14)
[GCC 10.2.1 20210110] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from openai import OpenAI
>>> exit()
安裝 Gemini 舊版 API 的 google-generativeai 套件 :
pi@pi3aplus:~ $ pip install google-generativeai
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting google-generativeai
Downloading google_generativeai-0.8.6-py3-none-any.whl (155 kB)
...(略)...
Successfully installed google-ai-generativelanguage-0.6.15 google-api-python-client-2.194.0 google-auth-httplib2-0.3.1 google-generativeai-0.8.6 grpcio-1.80.0 grpcio-status-1.71.2 httplib2-0.31.2 protobuf-5.29.6 uritemplate-4.2.0
但用 import google.generativeai as genai 匯入時會出現 grpcio 相關錯誤, 原因也是版本衝突問題, AI 建議改用下列安裝指令鎖住版本 :
pi@pi3aplus:~ $ pip install "google-generativeai==0.3.1" \
"google-ai-generativelanguage==0.4.0" \
"grpcio==1.54.2" \
"grpcio-status==1.54.2" \
"protobuf==4.25.3" \
--force-reinstall --no-cache-dir
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting google-generativeai==0.3.1
Downloading google_generativeai-0.3.1-py3-none-any.whl (146 kB)
...(略)...
Successfully installed certifi-2026.2.25 cffi-2.0.0 charset-normalizer-3.4.7 cryptography-46.0.7 google-ai-generativelanguage-0.4.0 google-api-core-2.29.0 google-auth-2.49.2 google-generativeai-0.3.1 googleapis-common-protos-1.73.0 grpcio-1.54.2 grpcio-status-1.54.2 idna-3.11 proto-plus-1.27.1 protobuf-4.25.3 pyasn1-0.6.3 pyasn1-modules-0.4.2 pycparser-2.23 requests-2.32.5 tqdm-4.67.3 typing-extensions-4.15.0 urllib3-2.6.3
這樣匯入時就只報出無關緊要的 Warning 了 (這些警告只是提醒 : Python 3.9 太舊了, 以後可能不支援而已) :
pi@pi3aplus:~ $ python
Python 3.9.2 (default, Jan 24 2026, 09:41:14)
[GCC 10.2.1 20210110] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import google.generativeai as genai
/home/pi/.local/lib/python3.9/site-packages/google/api_core/_python_version_support.py:246: FutureWarning: You are using a non-supported Python version (3.9.2). Google will not post any further updates to google.api_core supporting this Python version. Please upgrade to the latest Python version, or at least Python 3.10, and then update google.api_core.
warnings.warn(message, FutureWarning)
/home/pi/.local/lib/python3.9/site-packages/google/auth/__init__.py:54: FutureWarning: You are using a Python version 3.9 past its end of life. Google will update google-auth with critical bug fixes on a best-effort basis, but not with any other fixes or features. Please upgrade your Python version, and then update google-auth.
warnings.warn(eol_message.format("3.9"), FutureWarning)
/home/pi/.local/lib/python3.9/site-packages/google/oauth2/__init__.py:40: FutureWarning: You are using a Python version 3.9 past its end of life. Google will update google-auth with critical bug fixes on a best-effort basis, but not with any other fixes or features. Please upgrade your Python version, and then update google-auth.
warnings.warn(eol_message.format("3.9"), FutureWarning)
如果不想看到這些警告, 可以在程式開頭用下列程式碼隱藏 :
import warnings
warnings.filterwarnings("ignore", category=FutureWarning)
如果想永久隱藏, 就要用 nano ~/.bashrc 去修改設定檔, 在最底下加上 :
export PYTHONWARNINGS="ignore::FutureWarning"
用下列程式測試可正確載入 API :
import grpc
print(f"GRPC 版本: {grpc.__version__}") # 應該要是 1.54.2
import google.generativeai as genai
print("Gemini SDK 成功載入!")
>>> import google.generativeai as genai
>>> print(genai.__version__)
0.3.1
>>> try:
... print("SDK 載入成功,準備測試屬性...")
... model = genai.GenerativeModel('gemini-pro')
... print("模型物件建立成功!")
... except Exception as e:
... print(f"執行出錯: {e}")
...
SDK 載入成功,準備測試屬性...
模型物件建立成功!
我把 Gemini API 金鑰放在環境變數檔 .env 裡的 GEMINI_API_KEY 中利用 dotenv 套件讀取後實際呼叫 Gemini API 測試 OK :
>>> import google.generativeai as genai
>>> from dotenv import dotenv_values
>>> config=dotenv_values('.env')
>>> gemini_api_key=config.get('GEMINI_API_KEY')
>>> genai.configure(api_key=gemini_api_key)
>>> model=genai.GenerativeModel('gemini-2.5-flash')
>>> reply=model.generate_content('你是誰?')
>>> print(reply.text)
我是一個大型語言模型,由 Google 訓練。
我沒有名字、沒有身體,也沒有個人情感或意識。我的目的是回答你的問題、提供資訊、進行對話,並在各種任務上提供幫助。
下面是 OpenAI API 的測試 :
>>> from openai import OpenAI
>>> from dotenv import dotenv_values
>>> config=dotenv_values('.env')
>>> openai_api_key=config.get('OPENAI_API_KEY')
>>> client=OpenAI(api_key=openai_api_key)
>>> reply=client.chat.completions.create(
... messages=[
... {"role": "user",
... "content": "你是誰?",
... }],
... model="gpt-3.5-turbo",
... )
>>> print(reply.choices[0].message.content)
我是一個AI人工智能助手,可以與你進行對話、回答問題和提供信息。有什麼我可以幫助你的嗎?
沒有留言 :
張貼留言