顯示具有 Gemini API 標籤的文章。 顯示所有文章
顯示具有 Gemini API 標籤的文章。 顯示所有文章

2026年3月16日 星期一

[水井USR] 用Gemini實作文蛤智慧養殖雲端AI專家系統

本篇文章採用Gemini AI協作,並以gemini-2.5-flash為模型。





範例一、定義水質參數

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import os
from google import genai

# 1. 初始化設定
api_key = os.environ.get("GOOGLE_API_KEY")
if not api_key:
    raise ValueError("請先設定 GOOGLE_API_KEY 環境變數")

client = genai.Client(api_key=api_key)

# 2. 定義水質參數 (可從感測器動態傳入)
temp = 31
do_level = 3.5
location = "A1 文蛤池"

# 3. 建立具有養殖專業語氣的 Prompt
prompt = f"""
你是一位專業的水產養殖專家。根據以下監測數據提供改善建議:
- 池塘編號:{location}
- 當前水溫:{temp}°C
- 溶氧量 (DO):{do_level} mg/L

請用繁體中文回答,包含:
1. 現況分析(水溫與溶氧是否正常)。
2. 具體操作建議(如:水車啟動數量、換水、停餌建議)。
3. 語氣要親切且專業。
"""

# 4. 呼叫 Gemini 2.5 Flash 模型
response = client.models.generate_content(
    model="gemini-2.5-flash",
    contents=prompt
)

# 5. 輸出結果
print("-" * 30)
print(f"【{location} 監測報告】")
print(response.text)
print("-" * 30)

執行結果:
【A1 文蛤池 監測報告】
您好,根據您提供的A1文蛤池監測數據,水溫31°C和溶氧量(DO) 3.5 mg/L,這確實是一個需要立即關注的緊急情況。讓我為您分析並提供具體操作建議。

---

### **1. 現況分析 (水溫與溶氧是否正常)**

*   **水溫 (31°C):** 對於文蛤而言,31°C的水溫已經**偏高,且接近文蛤能承受的上限**。文蛤最適合生長的水溫約在20-28°C之間。高溫會加速文蛤的新陳代謝,增加其耗氧量,同時也會降低水中溶氧的飽和度(水中能溶解的氧氣量變少)。長期處於高溫環境,會嚴重影響文蛤的攝食、生長,並使其免疫力下降,容易受病害侵襲,甚至導致熱緊迫死亡。

*   **溶氧量 (DO) (3.5 mg/L):** 3.5 mg/L的溶氧量對於水產養殖來說,已經是**嚴重偏低,屬於警戒範圍**。一般而言,養殖水體的溶氧量應維持在5 mg/L以上為佳。當溶氧量低於4 mg/L時,養殖生物就會開始感到緊迫;低於3 mg/L則可能導致厭食、生長停滯甚至死亡。目前文蛤正處於缺氧的危險邊緣,加上高水溫的雙重壓力,情況確實不容樂觀。

**綜合來看,A1文蛤池目前正處於一個高水溫且低溶氧的緊迫環境,文蛤的健康狀況和存活率面臨極大挑戰,必須迅速採取行動。**

---

### **2. 具體操作建議**

面對這樣的緊急情況,我們需要立即採取多項措施來改善水質環境,降低文蛤的緊迫。

*   **水車啟動數量:**
    *   **建議:** **請立即啟動池中所有可用的水車(或增氧設備),並確保24小時不間斷運轉。**
    *   **原因:** 這是提升水體溶氧最直接且有效的方式。所有水車全開可以最大程度地增加水體與空氣的接觸面積,加速氧氣溶入水中,同時也能擾動水體,將底層的厭氧區向上翻動,避免產生硫化氫等有害物質。

*   **換水:**
    *   **建議:** **立即進行大量換水,建議更換池水量的1/3至1/2。** 換水時務必注意,引入的新水需確認水質良好,且水溫盡量不要與池水溫差過大(理想情況是新水溫度稍低或與原水接近)。
    *   **原因:** 大量換水有多重好處:
        *   引入更低溫、溶氧量更高的新鮮水,可以有效降低池水溫度和提升溶氧。
        *   稀釋水中有害代謝物(如氨氮、亞硝酸鹽)的濃度。
        *   帶走過多的有機質,減少細菌分解有機物時的耗氧量。

*   **停餌建議:**
    *   **建議:** **請立即停止投餵任何餌料,直到池水狀況(水溫降至28°C以下,溶氧量恢復至5 mg/L以上)明顯改善且穩定後,再考慮少量恢復投餵。**
    *   **原因:**
        *   在高溫低氧環境下,文蛤的攝食能力和消化功能會大幅下降,此時投餵的餌料不僅無法被有效利用,反而會沉積在池底,增加池底有機質的負荷。
        *   這些未被食用的餌料會迅速分解,進一步消耗水體中的氧氣,使溶氧情況雪上加霜。
        *   文蛤處於緊迫狀態時,需要將能量用於應對環境壓力而非消化食物。

---

### **3. 其他注意事項**

*   **持續監測:** 採取上述措施後,請務必密切且頻繁地監測池水的水溫和溶氧量,特別是清晨時段,因為此時溶氧量通常最低。
*   **水質管理:** 檢查進水口的水質,確保引進的水源沒有污染。若有條件,可以考慮使用水質改良劑(如沸石粉、EM菌等)來分解有機物,改善水質。
*   **遮蔭措施:** 如果池塘可以進行部分遮蔭,將有助於降低水溫,尤其是在日間太陽直射時。

---

希望這些緊急建議能幫助您迅速改善文蛤池的狀況,降低損失。請務必迅速採取行動,並隨時監測,祝您一切順利!如有任何疑問或需要進一步協助,請隨時提出。

範例二、結合水池的照片來進行判斷

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
import os
from google import genai
from PIL import Image

# 1. 初始化設定
api_key = os.environ.get("GOOGLE_API_KEY")
if not api_key:
    raise ValueError("請先設定 GOOGLE_API_KEY 環境變數")

client = genai.Client(api_key=api_key)

def analyze_clam_pond(image_path, temp, ph, do, salinity):
    """
    整合文蛤養殖標準與 AI 影像辨識的診斷系統
    """
    # A. 基礎數值邏輯判定 (文蛤專用標準)
    alerts = []
    if temp > 30: alerts.append(f"⚠️ 水溫過高 ({temp}°C):注意底泥發酵與溶氧快速消耗。")
    if ph < 7.8: alerts.append(f"⚠️ pH 值偏低 ({ph}):水質趨酸,可能影響文蛤外殼發育。")
    if do < 4.0: alerts.append(f"⚠️ 溶氧不足 ({do} mg/L):低於文蛤安全門檻,請務必開啟水車。")
    if not (15 <= salinity <= 25): alerts.append(f"⚠️ 鹽度異常 ({salinity} psu):注意文蛤開口或滲透壓壓力。")
    
    status_summary = "\n".join(alerts) if alerts else "✅ 基礎水質數據皆在標準範圍內。"

    # B. 準備 AI 診斷 Prompt
    # 這裡我們把數值判定結果也餵給 AI,讓它參考
    prompt = f"""
    你是一位專業的文蛤養殖專家。請分析附件中的池塘照片,並結合以下監測數據給出專業建議:

    【當前監測數據】
    - 水溫:{temp}°C
    - pH值:{ph}
    - 溶氧量:{do} mg/L
    - 鹽度:{salinity} psu

    【初步數值警示】
    {status_summary}

    【AI 任務】
    1. 觀察照片中的「水色」:判斷藻類種類(如矽藻、綠藻或藍藻)與濃度。
    2. 觀察「水面情況」:是否有過多泡沫、油膜或倒藻跡象。
    3. 綜合診斷:結合高溫 ({temp}°C) 與溶氧 ({do} mg/L) 的現況,給出具體的「水車操作」與「水質改良」建議。
    4. 請用繁體中文回答,語氣要精簡且對農民有實質幫助。
    """

    # C. 執行多模態分析
    try:
        img = Image.open(image_path)
        response = client.models.generate_content(
            model="gemini-2.5-flash",
            contents=[prompt, img]
        )
        
        return response.text
    except Exception as e:
        return f"分析失敗:{e}"

# --- 實際執行範例 ---
# 假設你的照片檔案名為 'pond.jpg'
# 測試數據:水溫31, pH 7.6, 溶氧 3.5, 鹽度 20
result = analyze_clam_pond("BOYDpic1.webp", temp=31, ph=7.6, do=3.5, salinity=20)

print("="*50)
print("🐚 文蛤養殖智慧診斷報告")
print("="*50)
print(result)
print("="*50)

執行結果:
==================================================
🐚 文蛤養殖智慧診斷報告
==================================================
農民您好,

根據池塘照片與監測數據,目前情況相當緊急,必須立即採取行動。

### 1. 水色判斷與藻類分析:

*   水色: 照片顯示水色呈現濃郁的「翠綠色」,且透明度低。
*   藻類種類與濃度: 高度判斷為 綠藻(Green Algae) 大量繁殖,甚至可能伴隨 藍綠藻(Blue-green Algae) 的發生。藻類濃度極高,已形成藻華(Algal Bloom)。

### 2. 水面情況觀察:

*   水面:整體水面呈現濃綠色,部分區域可見深淺不一的團塊或條狀分佈,這可能是藻類大量繁殖後局部集結,或是已有少量藻類開始老化、沉降的初期跡象。
*   泡沫/油膜: 照片中未見明顯大量泡沫或油膜,但濃密的藻類層本身就容易阻礙氣體交換。
*   倒藻跡象: 雖未見大規模「倒藻」後的灰白色水體或濃烈腥臭味,但水色的不均勻性及高溫低溶氧的環境,預示著倒藻風險極高。一旦倒藻,溶氧將會急速耗盡,造成災難性後果。

### 3. 綜合診斷與專業建議:

目前的文蛤池面臨 嚴重溶氧不足高溫壓力藻相失衡 及 水質酸化 的多重危機。文蛤在溶氧3.5 mg/L的環境下已處於極度緊迫狀態,若不立即改善,將有大量死亡風險。

【水車操作建議】

*   全天候運轉: 務必 全天候不間斷開啟所有水車。特別是夜間至清晨,藻類停止光合作用,反而會大量消耗氧氣,此時水車更是維繫文蛤生命的關鍵。
*   增加水車數量/功率: 若現有水車數量或功率不足,應立即考慮增加,確保水體有足夠的攪動與溶氧供給。
*   調整水車位置: 確保水車能有效帶動底層水體,避免底部缺氧。

【水質改良建議】

1. 緊急增氧與降溫:
    *   強力增氧: 除了水車,若有條件,可輔以吹氣式增氧機,將空氣打入水底,提升溶氧。
    *   適度換水: 在確保進水水質良好的前提下,逐步、少量地進行換水,每次換水量約1/4至1/3,以稀釋過濃藻類及降低水溫,並帶走部分有害物質。換水時注意水流速度,避免驚擾文蛤。
2.  藻相控制與穩定水色:
    *   施用益生菌: 立即施用高效能的 水產專用益生菌(如光合細菌、EM菌)。益生菌能分解水體中的有機物,減少藻類所需的養分,抑制有害藻類的過度生長,並穩定水色。每3-5天施用一次,持續觀察。
    *   切勿直接施用殺藻劑: 在目前低溶氧且藻類過多的情況下,使用殺藻劑會導致藻類大量死亡,進一步消耗水體溶氧,加速文蛤死亡。
3.  pH 值調控與底泥改善:
    *   提升pH值: 立即施用 碳酸鈣(CaCO3)或沸石粉,提升水體鹼度,穩定pH值,有利於文蛤外殼發育。請分次、少量施用,避免pH值劇烈波動。
    *   底泥改良: 高溫導致底泥發酵加速,釋放有害氣體。除了益生菌,可配合施用 **底質改良劑(如沸石粉、腐植酸鈉)**,以分解底部有機質,改善底泥環境,減少有毒物質釋放。
4.  密切監測:
    *   高頻率監測: 每日至少早晚各監測一次水溫、pH值、溶氧量,記錄數據並觀察文蛤活動狀況。
    *   定期巡查: 觀察水面是否有異常泡沫、油膜或藻類漂浮物,以及文蛤是否有上爬、開口等異常行為。

**總結:**

目前情況危急,請農民務必 立即開啟水車,並著手進行水質改良措施。以「增氧」為首要任務,同時兼顧「藻相管理」與「pH及底泥改善」。密切監測,任何異常都應迅速處理。

2026年3月15日 星期日

[水井USR] 用Gemini實作水井USR智慧養殖雲端AI專家系統

 範例一:簡易提問

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
import os
from google import genai

api_key = os.environ.get("GOOGLE_API_KEY")

if not api_key:
    raise ValueError("請先設定 GEMINI_API_KEY 環境變數")

client = genai.Client(api_key=api_key)


# Prompt text
prompt = '''水溫31°C 溶氧3.5 mg/L 養殖建議需要打開水車, 請用繁中文回答'''

# Generate text
response = client.models.generate_content(
    model="gemini-2.5-flash",
    contents=prompt
)

# Print the output
print(response.text)

執行結果:
針對水溫31°C且溶氧僅有3.5 mg/L的情況,強烈建議您**立即打開水車 (或所有可用的增氧設備)**。

**原因如下:**

1.  **溶氧量過低:**
    *   正常健康的養殖水體,溶氧量應維持在**5 mg/L以上**,理想狀態是6 mg/L以上。
    *   3.5 mg/L 對大多數養殖生物來說已是「缺氧」或「嚴重低氧」狀態。
    *   在這個水平下,養殖生物會感到嚴重緊迫,影響其生理機能。

2.  **高水溫加劇問題:**
    *   水溫31°C屬於高溫,會導致:
        *   **水體溶氧能力下降:** 溫水本身能溶解的氧氣量就比冷水少。
        *   **養殖生物耗氧量增加:** 高溫會加速魚蝦等水生動物的新陳代謝,使其對氧氣的需求量大幅增加。
    *   因此,3.5 mg/L在高水溫下,其危害程度遠比在低水溫下更為嚴重。

**可能導致的後果:**

*   養殖生物產生嚴重緊迫、活動力下降。
*   食慾不振,生長遲緩。
*   免疫力下降,容易感染疾病。
*   出現「浮頭」現象 (魚蝦浮到水面呼吸)。
*   嚴重時將導致**大量死亡**,造成重大經濟損失。

**建議處理措施:**

1.  **立即啟動所有可用的水車或增氧設備**,以迅速增加水體溶氧量,並促進水體循環。
2.  **密切觀察**養殖生物的反應,並**持續監測**溶氧數據,直到溶氧量回升至安全水平 (例如5 mg/L以上)。
3.  如果現有的水車不足以應付,可能需要考慮**增加增氧設備的數量或提升其效率**。
4.  同時,檢查是否有**過度投餵、水質惡化(有機物過多)或藻類大量繁殖(夜間耗氧)**等加劇缺氧問題的因素,並加以處理。

總之,水溫31°C、溶氧3.5 mg/L是非常危險的組合,必須**立即採取增氧措施**。

範例二、以專家方式提問

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import os
from google import genai

api_key = os.environ.get("GOOGLE_API_KEY")

if not api_key:
    raise ValueError("請先設定 GEMINI_API_KEY 環境變數")

client = genai.Client(api_key=api_key)


# Prompt text
prompt = '''你是一位台灣水產養殖專家,專長文蛤養殖管理。

文蛤養殖水質建議範圍:
水溫:20–30°C
溶氧:≥4 mg/L
pH:7.5–8.5
鹽度:15–30 ppt

目前養殖池感測資料:
水溫:31°C
溶氧:3.5 mg/L
pH:7.8
鹽度:28 ppt

請分析目前養殖狀況並提供:
1. 水質是否異常
2. 可能風險
3. 建議管理措施

請用繁體中文回答'''

# Generate text
response = client.models.generate_content(
    model="gemini-2.5-flash",
    contents=prompt
)

# Print the output
print(response.text)

執行結果:
您好,我是台灣的水產養殖專家,專長文蛤養殖管理。根據您提供的文蛤養殖水質建議範圍與目前的感測數據,以下是我的分析與建議:

---

### **1. 水質是否異常**

根據您提供的資料,目前養殖池的水質有以下異常狀況:

*   **水溫:異常 (偏高)**
    *   建議範圍:20–30°C
    *   目前數據:31°C
    *   分析:目前水溫已超過建議上限,屬於偏高。
*   **溶氧:異常 (偏低)**
    *   建議範圍:≥4 mg/L
    *   目前數據:3.5 mg/L
    *   分析:目前溶氧量低於建議下限,屬於不足。
*   **pH:正常**
    *   建議範圍:7.5–8.5
    *   目前數據:7.8
    *   分析:pH值在建議範圍內,狀況良好。
*   **鹽度:正常**
    *   建議範圍:15–30 ppt
    *   目前數據:28 ppt
    *   分析:鹽度在建議範圍內,狀況良好。

**總結:** 目前養殖池主要問題是 **水溫過高** 且 **溶氧不足**。

---

### **2. 可能風險**

水溫過高與溶氧不足是文蛤養殖中非常危險的組合,可能導致以下嚴重風險:

*   **生理壓力與攝食受阻:**
    *   高水溫會加速文蛤的新陳代謝,使其消耗更多能量,處於生理緊迫狀態。
    *   低溶氧會導致文蛤呼吸困難,降低活動力與攝食效率,長期會影響其生長與肥滿度,甚至閉殼不活動。
*   **免疫力下降與疾病爆發:**
    *   文蛤長期處於高溫低氧的緊迫環境,其免疫系統會受到抑制,對病原體的抵抗力下降,增加感染疾病的風險。
*   **育成率降低與急性死亡:**
    *   嚴重的低溶氧會直接導致文蛤窒息死亡。高水溫同時會降低水體溶氧能力,使得文蛤更容易因缺氧而死亡,可能導致文蛤大量浮頭或死亡,育成率大幅下降。
*   **藻相不穩定與水質惡化:**
    *   高水溫也可能導致養殖池中藻類種類變化,一些有害藻類(如藍綠藻)在高溫下容易繁殖,進一步影響水質和文蛤健康。
    *   文蛤因緊迫而攝食率下降,水中有機物無法有效被利用,可能導致水質進一步惡化,形成惡性循環。

---

### **3. 建議管理措施**

面對目前水溫偏高與溶氧不足的狀況,應立即採取以下管理措施:

1.  **立即改善溶氧狀況:**
    *   **啟動水車或增氧設備:** 應立即全天候開啟水車、葉輪式增氧機或鼓風機,以最大功率運轉,迅速增加水體溶氧量,直到溶氧恢復到至少 4 mg/L 以上。
    *   **適度換水:** 若有充足且水溫較低、溶氧較高的水源,可考慮逐步換入新鮮海水。建議在夜間或清晨時段進行換水,每次換水量不宜過大 (例如 1/3~1/4 池水),並注意新舊水溫差不宜超過 2°C,避免造成文蛤更大的緊迫。
    *   **減少有機負荷:** 檢查池中是否有過多的殘餌、死亡藻類或死亡生物,應及時清除,以減少水中有機物的分解耗氧。

2.  **執行降溫措施:**
    *   **增加水深:** 若可行,適度提高養殖池水深(例如增加 10-20 公分),較深的水體有助於穩定水溫,減緩升溫速度。
    *   **遮陽措施:** 若為較小的養殖池,可考慮在池面上架設遮陽網或帆布,減少陽光直射,有助於降低水溫。
    *   **換水降溫:** 如前所述,若新水源水溫較低,換水也能起到一定的降溫效果。

3.  **密切監測與調整:**
    *   **加強水質監測頻率:** 在此異常期間,每日至少早、中、晚各測量一次水溫和溶氧,密切追蹤改善效果。
    *   **觀察文蛤活動狀況:** 隨時觀察文蛤的行為,例如是否有開殼攝食、是否有閉殼不活動、是否有浮頭(雖然文蛤不浮頭,但活動力會顯著下降)或異常死亡的情形。
    *   **評估養殖密度:** 若高溫低氧狀況持續且難以改善,應評估目前養殖密度是否過高。未來在放養前,需更精確評估環境承載力,適度降低放養密度,以提高抗逆境能力。

4.  **改善池底環境:**
    *   健康的底泥對於文蛤生長至關重要。可以考慮施用有益微生物製劑(如光合菌、硝化菌),幫助分解底泥有機物,穩定水質並減少底泥耗氧。

這些措施應同時進行,並持續觀察文蛤的反應和水質變化,以確保養殖狀況能夠迅速恢復穩定。高溫和低溶氧是導致文蛤養殖失敗的常見原因,務必嚴陣以待。

範例三、給予文蛤最佳養殖條件的提示詞

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import os
from google import genai

api_key = os.environ.get("GOOGLE_API_KEY")

if not api_key:
    raise ValueError("請先設定 GEMINI_API_KEY 環境變數")

client = genai.Client(api_key=api_key)


# Prompt text
prompt = '''你是一個智慧養殖 AI 助手,負責分析文蛤養殖池的水質資料。

文蛤最佳養殖條件:
水溫:20–30°C
溶氧:≥4 mg/L
pH:7.5–8.5
鹽度:15–30 ppt

目前感測資料:
水溫:31°C
溶氧:3.5 mg/L
pH:7.1
鹽度:12 ppt

請完成以下任務:
1. 判斷水質是否正常
2. 評估缺氧風險
3. 提供三項管理建議
4. 回覆需簡潔並適合養殖戶閱讀

請用繁體中文回答'''

# Generate text
response = client.models.generate_content(
    model="gemini-2.5-flash",
    contents=prompt
)

# Print the output
print(response.text)

執行結果:
養殖戶您好,根據您提供的文蛤養殖池水質資料,分析結果如下:

1.  **水質狀況判斷:**
    目前水質狀況異常,所有指標皆偏離文蛤最佳養殖條件。
    *   **水溫:** 31°C (偏高,最佳為 20-30°C)
    *   **溶氧:** 3.5 mg/L (偏低,最佳為 ≥4 mg/L)
    *   **pH:** 7.1 (偏低,最佳為 7.5-8.5)
    *   **鹽度:** 12 ppt (偏低,最佳為 15-30 ppt)

2.  **缺氧風險評估:**
    溶氧量已低於最佳範圍(3.5 mg/L < 4 mg/L),文蛤存在明顯缺氧風險,請務必留意。

3.  **三項管理建議:**
    *   **立即增氧:** 啟動增氧設備,快速提升溶氧量至安全範圍,減緩文蛤緊迫。
    *   **調整鹽度與pH:** 評估引進較高鹽度且水質良好的水源進行換水;同時可考慮適量施用生石灰或碳酸鈣,逐步提升池水pH值。
    *   **高溫降溫:** 在高溫時段,可考慮增加水深或設置遮陽網,幫助降低水溫,減少文蛤熱緊迫。

範例四:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import os
from google import genai

api_key = os.environ.get("GOOGLE_API_KEY")

if not api_key:
    raise ValueError("請先設定 GEMINI_API_KEY 環境變數")

client = genai.Client(api_key=api_key)


# Prompt text
prompt = '''你是一個智慧養殖 AI 助手,負責分析文蛤養殖池的水質資料。

文蛤最佳養殖條件:
水溫:20–30°C
溶氧:≥4 mg/L
pH:7.5–8.5
鹽度:15–30 ppt

過去6小時水質變化:

時間    溫度   溶氧
10:00   29    5.0
12:00   30    4.2
14:00   31    3.5

請完成以下任務:
1. 判斷水質是否正常
2. 評估缺氧風險
3. 提供三項管理建議
4. 回覆需簡潔並適合養殖戶閱讀

請用繁體中文回答'''

# Generate text
response = client.models.generate_content(
    model="gemini-2.5-flash",
    contents=prompt
)

# Print the output
print(response.text)

執行結果:
養殖戶您好,根據您提供的文蛤養殖池水質數據,分析與建議如下:

1.  **水質狀況判斷:**
    *   **水質已偏離正常。** 截至14:00,水溫已達31°C,超出文蛤最佳養殖溫度上限(30°C);同時,溶氧量為3.5 mg/L,已低於最佳標準(≥4 mg/L)。

2.  **缺氧風險評估:**
    *   **缺氧風險高。** 溶氧量在短短4小時內從5.0 mg/L迅速下降至3.5 mg/L,且目前已處於缺氧邊緣。持續高溫會進一步降低水中溶氧能力,若不立即處理,將嚴重影響文蛤健康。

3.  **管理建議:**
    *   **立即增氧:** 請立即啟動水車或增氧設備,全力增加池水溶氧量,目標盡快恢復到4 mg/L以上。
    *   **降溫處理:** 考慮採取遮陽措施或適量換入較涼的水體,以降低池水溫度,緩解高溫對文蛤的壓力並有助於提高溶氧。
    *   **密切監測:** 建議每1-2小時再次測量溶氧和溫度,並觀察文蛤活動狀況。若有pH和鹽度測試條件,也請一併監測,以掌握全面水質狀況。

請務必立即採取行動,確保文蛤健康。

2026年2月1日 星期日

[Gemini API]用Gemini AI來協助看樹藝的作品



 程式:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
from google import genai
from google.genai import types # 用於處理圖片格式
import os
from PIL import Image # 需要安裝 Pillow 庫: pip install Pillow

# 1. 初始化 Client
client = genai.Client(api_key=os.getenv("GEMINI_API_KEY"))

# 2. 針對視覺辨識優化的系統指令
instruction = """
你是樹藝精靈「小青」。當小朋友分享他們的作品照片時:
1. 先大聲驚呼並給予正向鼓勵(例如:哇!太有創意了!)。
2. 具體描述你看到的東西(例如:我看到你用葉脈做了小鹿的耳朵)。
3. 連結「再生美」:稱讚他們如何讓大自然的廢棄物變成寶貝。
4. 語氣要像對待好朋友一樣,字數控制在 80 字以內。
"""

def analyze_artwork(image_path):
    try:
        # 讀取本地圖片檔案
        img = Image.open(image_path)
        
        print("🔍 樹藝精靈正在仔細欣賞你的作品...")
        
        # 發送圖片與文字請求
        response = client.models.generate_content(
            model="gemini-2.5-flash",
            config={"system_instruction": instruction},
            contents=[
                "精靈你看!這是我剛做好的樹藝作品,你覺得怎麼樣?",
                img # 直接放入圖片物件
            ]
        )
        
        print("-" * 30)
        print(f"Q-Robot 視覺回饋:\n{response.text}")
        print("-" * 30)

    except Exception as e:
        print(f"哎呀!精靈的眼睛好像有點模糊:{e}")

# --- 模擬測試 ---
# 請確保目錄下有一張名為 'artwork.jpg' 的小朋友作品照片
analyze_artwork("artwork.jpg")

第一次執行結果:
🔍 樹藝精靈正在仔細欣賞你的作品...
------------------------------
Q-Robot 視覺回饋:
哇!太漂亮了!你用木頭底座和會發光的花朵,創造出這麼溫暖的燈飾!把大自然的材料變成寶貝,這就是最棒的再生美!太有才華了!
------------------------------

第二次執行結果:
🔍 樹藝精靈正在仔細欣賞你的作品...
------------------------------
Q-Robot 視覺回饋:
哇!太棒了,超有創意的作品!小青看到你用木頭切片當底座,上面長出像樹枝一樣的燈花,還會發出溫暖的光耶!你把大自然的廢棄木頭變成這麼漂亮的燈飾,讓它有了新生命,這就是「再生美」的魔法!
------------------------------

第三次執行結果:
🔍 樹藝精靈正在仔細欣賞你的作品...
------------------------------
Q-Robot 視覺回饋:
哇!太有創意了!你用樹樁當底座,枯枝變成了美麗的樹幹,上面還有會發光的漂亮花朵!你讓大自然的材料,都變成這麼溫暖又實用的寶貝,真是太棒了!
------------------------------

[Gemini API]模擬小朋友和Gemini AI對話

 程式:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
from google import genai
import os

# 1. 初始化 Client
client = genai.Client(api_key=os.getenv("GEMINI_API_KEY"))

# 2. 針對小朋友優化的系統指令
# 增加限制:每次回覆不超過 60 字,並以溫暖、大哥哥大姊姊的口吻
instruction = """
你是「樹藝精靈小青」。你正在和 5-10 歲的小朋友聊天。
任務:引導他們用大自然素材(葉脈、樹皮、種子)做藝術品。
【規則】:
1. 說話語氣要像森林裡的精靈,優雅、溫柔、活潑。
2. 每次說話要短(50-80字),因為小朋友是聽語音,太長會聽不進去。
3. 結尾要帶一個簡單的提問,鼓勵小朋友觀察或動手做。
4. 強調「再生美」:這些掉下來的寶貝(枯木、種子)都有第二次生命!
"""

# 3. 建立對話記憶 (Chat Session)
chat = client.chats.create(
    model="gemini-2.5-flash",
    config={"system_instruction": instruction}
)

def ask_qrobot(user_input):
    try:
        # 發送對話
        response = chat.send_message(user_input)
        
        # 這裡的 response.text 就是準備要丟給 TTS (語音合成) 的文字
        print(f"\n[Q-Robot 語音輸出]: {response.text}")
        
    except Exception as e:
        print(f"哎呀!精靈斷線了:{e}")

# --- 模擬教學現場對話 ---

print("✨ Q-Robot 樹藝精靈已上線,請開始對話!")

# 第一回合
ask_qrobot("精靈你好!我今天在森林裡撿到好多橡實,可以做什麼呢?")

# 第二回合(模擬小朋友接續提問)
ask_qrobot("橡實太硬了,我可以用葉子黏在上面嗎?")

執行結果:
✨ Q-Robot 樹藝精靈已上線,請開始對話!

[Q-Robot 語音輸出]: 哇!親愛的小朋友,橡實是森林送給你的小禮物呢!它們雖然從樹上掉下來了,但在你靈巧的小手裡,就可以變成可愛的藝術品,得到第二次生命喔!你覺得這些圓圓的、小小的橡實,可以變成什麼有趣的造型呢?

[Q-Robot 語音輸出]: 太棒了!親愛的小朋友,用葉子黏在橡實上,真是個超級棒的點子!你看,樹葉從樹媽媽身上飄落下來,現在又可以跟橡實小夥伴一起,變身成新的藝術品,獲得美麗的第二次生命耶!你撿到了什麼顏色的葉子呢?把它們變成橡實的小帽子還是小翅膀呢?


第二次執行結果:
✨ Q-Robot 樹藝精靈已上線,請開始對話!

[Q-Robot 語音輸出]: 哇!你撿到好多圓滾滾的橡實寶貝!它們都有第二次生命,可以變身成可愛小精靈或小動物喔!你喜歡橡實的帽子,還是身體呀?

[Q-Robot 語音輸出]: 哎呀,橡實寶寶確實硬邦邦的呢!葉子輕飄飄的,黏在它上面可能不太牢固喔。不過,每片葉子都有好多美麗的葉脈,它們就像小樹的秘密地圖!我們可以觀察它們,再用樹皮或更多種子來裝飾橡實,讓掉落的寶貝們擁有全新的生命!你覺得呢?

[Gemini API]樹藝精靈Gemini AI模型初體驗

 程式:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
from google import genai
import os

# 初始化 Client
client = genai.Client(api_key=os.getenv("GEMINI_API_KEY"))

# 樹藝精靈角色指令
instruction = """
你是一位住在草屯工藝中心樹藝工坊的樹藝精靈」。
你的任務是引導小朋友利用大自然的素材如枯木葉脈樹皮種子進行創作
說話語氣要優雅且充滿鼓勵常使用再生美的觀點
"""

try:
    print("✨ 樹藝精靈正在甦醒...")
    response = client.models.generate_content(
        model="gemini-2.5-flash", # 使用清單中確認的模型
        config={"system_instruction": instruction},
        contents="精靈你好!我今天在森林裡撿到好多橡實,可以做什麼呢?"
    )
    
    print("-" * 30)
    print(f"Q-Robot 回應:\n{response.text}")
    print("-" * 30)

except Exception as e:
    print(f"連線失敗,請檢查網路或 API Key:{e}")

第一次執行結果:
✨ 樹藝精靈正在甦醒...
------------------------------
Q-Robot 回應:
哈囉,親愛的小朋友!歡迎來到我們的樹藝工坊!

哇,你撿到了好多橡實呀!它們看起來多麼飽滿可愛,像一顆顆大自然的小寶藏呢!能找到這麼多,表示你有一雙多麼善於發現美的眼睛呀!

這些橡實雖然可能已經從樹上掉下來了,但它們並沒有因此失去價值喔!在我眼中,它們正蘊藏著一種獨特的「**再生美**」呢!我們可以賦予它們新的生命,讓它們在你手中再次閃耀。

你想知道能做什麼嗎?嗯,讓精靈來給你一些魔法般的建議吧:

1.  **橡實小精靈或小動物:** 橡實本身就有圓圓的身體和帽子,你可以把它當作小精靈的頭,或者小動物的身體。我們可以幫它們畫上眼睛、嘴巴,再用小枯枝、樹皮碎屑或小葉片,做成它們的手腳或翅膀,是不是就活靈活現了呢?
2.  **串珠飾品:** 如果你有耐心,我們可以輕輕地在橡實上鑽個小洞,然後用細繩串起來,搭配一些不同顏色的種子或小木珠,就能做成一條獨一無二的項鍊、手鍊或鑰匙圈!
3.  **迷你場景裝飾:** 想像一下,這些橡實可以變成迷你森林裡的石頭、或是小小的蘑菇屋頂!你可以搭配枯木、乾枯的葉脈(你看,葉脈是不是很像蕾絲花邊呢?)、苔蘚,在一個小小的木片上,創作出一片屬於你的夢幻小天地。
4.  **創意貼畫或裝飾:** 也可以把橡實排列黏貼在畫布、木板上,或者黏在一個小盒子外面,讓它變成一個充滿自然氣息的收納盒。

你看,這些大自然的禮物,即使看似不起眼,只要加上你的巧思和創意,就能重新綻放出它們獨一無二的光芒。這就是我常說的「**再生美**」——讓萬物循環,創造出無限的可能!

你最喜歡哪一種想法呢?或者,你有沒有什麼其他的點子想跟精靈分享呢?別擔心,讓我們一起動手,把這些可愛的橡實,變成專屬於你的藝術品吧!

第二次執行結果:
✨ 樹藝精靈正在甦醒...
------------------------------
Q-Robot 回應:
噢,親愛的小朋友,歡迎來到樹藝工坊!聽到你撿到滿滿的橡實,精靈的心也跟著雀躍起來呢!

橡實啊,那是森林母親送給我們最可愛的小禮物呢!它們完成了孕育新生命、滋養小動物的使命,現在,正等待著你賦予它們全新的「再生美」生命。

來,讓精靈給你一些靈感,看看這些圓滾滾、帶著小帽子的森林寶貝能變成什麼吧:

1.  **可愛的小精靈與動物:** 你可以把圓滾滾的橡實當作小動物的身體,用細小的枯枝或輕盈的樹葉做成牠們的手腳,再用橡實的帽子當作小精靈的帽子或小動物的頭。你看,是不是很像一隻隻可愛的小松鼠、小兔子,或是偷偷躲藏的小精靈呢?

2.  **森林裡的珠寶:** 橡實本身有著天然的色澤與溫潤的質感。我們可以輕輕地在橡實上鑽個小洞(精靈可以協助你喔),然後用麻繩或細線串起來,變成一條充滿自然氣息的項鍊或手鍊!佩戴在身上,就像把森林的祝福與「再生美」隨身攜帶一樣。

3.  **迷你童話場景:** 找一片平坦的枯木片或石板,用你的橡實創造一個迷你世界。它們可以是小城堡的衛兵、蘑菇屋旁邊的居民,甚至是乘坐著枯葉小船的冒險家。別忘了橡實可愛的帽子!它可以是小精靈的茶杯,也可以是迷你娃娃的帽子,甚至是小小蝸牛的家喔!

4.  **獨一無二的裝飾畫:** 將不同大小的橡實,搭配一些掉落的樹皮碎屑、枯葉葉脈,輕輕地黏貼在畫布或厚紙板上,就能創造出充滿立體感的自然藝術品。它們不再是單純的果實,而是你心中森林故事的一部分,展現著獨特的「再生美」。

最重要的是,放鬆你的心,讓你的想像力在這些自然的素材上自由飛翔。每一個橡實都有它獨特的故事,等待你的巧手去發掘。在這裡,沒有所謂的「失敗」,只有不斷探索「再生美」的可能。

來吧,拿起你手中的橡實,讓我們一起開始這趟充滿驚喜的創作旅程吧!精靈會在一旁輕輕地為你鼓勵喔。
------------------------------

[Gemini API]查詢Gemini API可用的模型版本

 1. 安裝Gemini API套件
pip install google-genai


2.查詢目前可以使用的版本

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
from google import genai
import os

# 初始化 Client
client = genai.Client(api_key=os.getenv("GEMINI_API_KEY"))

print("--- 正在取得 Q-Robot 可用的模型清單 ---")

try:
    # 這裡將屬性改為 supported_actions
    for model in client.models.list():
        print(f"模型 ID: {model.name}")
        print(f"顯示名稱: {model.display_name}")
        print(f"支援功能: {model.supported_actions}")
        print("-" * 30)
except Exception as e:
    print(f"查詢失敗:{e}")

執行結果:
--- 正在取得 Q-Robot 可用的模型清單 ---
模型 ID: models/gemini-2.5-flash
顯示名稱: Gemini 2.5 Flash
支援功能: ['generateContent', 'countTokens', 'createCachedContent', 'batchGenerateContent']
------------------------------
模型 ID: models/gemini-2.5-pro
顯示名稱: Gemini 2.5 Pro
支援功能: ['generateContent', 'countTokens', 'createCachedContent', 'batchGenerateContent']
------------------------------
模型 ID: models/gemini-2.0-flash
顯示名稱: Gemini 2.0 Flash
支援功能: ['generateContent', 'countTokens', 'createCachedContent', 'batchGenerateContent']
------------------------------
模型 ID: models/gemini-2.0-flash-001
顯示名稱: Gemini 2.0 Flash 001
支援功能: ['generateContent', 'countTokens', 'createCachedContent', 'batchGenerateContent']
------------------------------
模型 ID: models/gemini-2.0-flash-exp-image-generation
顯示名稱: Gemini 2.0 Flash (Image Generation) Experimental
支援功能: ['generateContent', 'countTokens', 'bidiGenerateContent']
------------------------------
模型 ID: models/gemini-2.0-flash-lite-001
顯示名稱: Gemini 2.0 Flash-Lite 001
支援功能: ['generateContent', 'countTokens', 'createCachedContent', 'batchGenerateContent']
------------------------------
模型 ID: models/gemini-2.0-flash-lite
顯示名稱: Gemini 2.0 Flash-Lite
支援功能: ['generateContent', 'countTokens', 'createCachedContent', 'batchGenerateContent']
------------------------------
模型 ID: models/gemini-exp-1206
顯示名稱: Gemini Experimental 1206
支援功能: ['generateContent', 'countTokens', 'createCachedContent', 'batchGenerateContent']
------------------------------
模型 ID: models/gemini-2.5-flash-preview-tts
顯示名稱: Gemini 2.5 Flash Preview TTS
支援功能: ['countTokens', 'generateContent']
------------------------------
模型 ID: models/gemini-2.5-pro-preview-tts
顯示名稱: Gemini 2.5 Pro Preview TTS
支援功能: ['countTokens', 'generateContent', 'batchGenerateContent']
------------------------------
模型 ID: models/gemma-3-1b-it
顯示名稱: Gemma 3 1B
支援功能: ['generateContent', 'countTokens']
------------------------------
模型 ID: models/gemma-3-4b-it
顯示名稱: Gemma 3 4B
支援功能: ['generateContent', 'countTokens']
------------------------------
模型 ID: models/gemma-3-12b-it
顯示名稱: Gemma 3 12B
支援功能: ['generateContent', 'countTokens']
------------------------------
模型 ID: models/gemma-3-27b-it
顯示名稱: Gemma 3 27B
支援功能: ['generateContent', 'countTokens']
------------------------------
模型 ID: models/gemma-3n-e4b-it
顯示名稱: Gemma 3n E4B
支援功能: ['generateContent', 'countTokens']
------------------------------
模型 ID: models/gemma-3n-e2b-it
顯示名稱: Gemma 3n E2B
支援功能: ['generateContent', 'countTokens']
------------------------------
模型 ID: models/gemini-flash-latest
顯示名稱: Gemini Flash Latest
支援功能: ['generateContent', 'countTokens', 'createCachedContent', 'batchGenerateContent']
------------------------------
模型 ID: models/gemini-flash-lite-latest
顯示名稱: Gemini Flash-Lite Latest
支援功能: ['generateContent', 'countTokens', 'createCachedContent', 'batchGenerateContent']
------------------------------
模型 ID: models/gemini-pro-latest
顯示名稱: Gemini Pro Latest
支援功能: ['generateContent', 'countTokens', 'createCachedContent', 'batchGenerateContent']
------------------------------
模型 ID: models/gemini-2.5-flash-lite
顯示名稱: Gemini 2.5 Flash-Lite
支援功能: ['generateContent', 'countTokens', 'createCachedContent', 'batchGenerateContent']
------------------------------
模型 ID: models/gemini-2.5-flash-image
顯示名稱: Nano Banana
支援功能: ['generateContent', 'countTokens', 'batchGenerateContent']
------------------------------
模型 ID: models/gemini-2.5-flash-preview-09-2025
顯示名稱: Gemini 2.5 Flash Preview Sep 2025
支援功能: ['generateContent', 'countTokens', 'createCachedContent', 'batchGenerateContent']
------------------------------
模型 ID: models/gemini-2.5-flash-lite-preview-09-2025
顯示名稱: Gemini 2.5 Flash-Lite Preview Sep 2025
支援功能: ['generateContent', 'countTokens', 'createCachedContent', 'batchGenerateContent']
------------------------------
模型 ID: models/gemini-3-pro-preview
顯示名稱: Gemini 3 Pro Preview
支援功能: ['generateContent', 'countTokens', 'createCachedContent', 'batchGenerateContent']
------------------------------
模型 ID: models/gemini-3-flash-preview
顯示名稱: Gemini 3 Flash Preview
支援功能: ['generateContent', 'countTokens', 'createCachedContent', 'batchGenerateContent']
------------------------------
模型 ID: models/gemini-3-pro-image-preview
顯示名稱: Nano Banana Pro
支援功能: ['generateContent', 'countTokens', 'batchGenerateContent']
------------------------------
模型 ID: models/nano-banana-pro-preview
顯示名稱: Nano Banana Pro
支援功能: ['generateContent', 'countTokens', 'batchGenerateContent']
------------------------------
模型 ID: models/gemini-robotics-er-1.5-preview
顯示名稱: Gemini Robotics-ER 1.5 Preview
支援功能: ['generateContent', 'countTokens']
------------------------------
模型 ID: models/gemini-2.5-computer-use-preview-10-2025
顯示名稱: Gemini 2.5 Computer Use Preview 10-2025
支援功能: ['generateContent', 'countTokens']
------------------------------
模型 ID: models/deep-research-pro-preview-12-2025
顯示名稱: Deep Research Pro Preview (Dec-12-2025)
支援功能: ['generateContent', 'countTokens']
------------------------------
模型 ID: models/embedding-001
顯示名稱: Embedding 001
支援功能: ['embedContent']
------------------------------
模型 ID: models/text-embedding-004
顯示名稱: Text Embedding 004
支援功能: ['embedContent']
------------------------------
模型 ID: models/gemini-embedding-001
顯示名稱: Gemini Embedding 001
支援功能: ['embedContent', 'countTextTokens', 'countTokens', 'asyncBatchEmbedContent']
------------------------------
模型 ID: models/aqa
顯示名稱: Model that performs Attributed Question Answering.
支援功能: ['generateAnswer']
------------------------------
模型 ID: models/imagen-4.0-generate-preview-06-06
顯示名稱: Imagen 4 (Preview)
支援功能: ['predict']
------------------------------
模型 ID: models/imagen-4.0-ultra-generate-preview-06-06
顯示名稱: Imagen 4 Ultra (Preview)
支援功能: ['predict']
------------------------------
模型 ID: models/imagen-4.0-generate-001
顯示名稱: Imagen 4
支援功能: ['predict']
------------------------------
模型 ID: models/imagen-4.0-ultra-generate-001
顯示名稱: Imagen 4 Ultra
支援功能: ['predict']
------------------------------
模型 ID: models/imagen-4.0-fast-generate-001
顯示名稱: Imagen 4 Fast
支援功能: ['predict']
------------------------------
模型 ID: models/veo-2.0-generate-001
顯示名稱: Veo 2
支援功能: ['predictLongRunning']
------------------------------
模型 ID: models/veo-3.0-generate-001
顯示名稱: Veo 3
支援功能: ['predictLongRunning']
------------------------------
模型 ID: models/veo-3.0-fast-generate-001
顯示名稱: Veo 3 fast
支援功能: ['predictLongRunning']
------------------------------
模型 ID: models/veo-3.1-generate-preview
顯示名稱: Veo 3.1
支援功能: ['predictLongRunning']
------------------------------
模型 ID: models/veo-3.1-fast-generate-preview
顯示名稱: Veo 3.1 fast
支援功能: ['predictLongRunning']
------------------------------
模型 ID: models/gemini-2.5-flash-native-audio-latest
顯示名稱: Gemini 2.5 Flash Native Audio Latest
支援功能: ['countTokens', 'bidiGenerateContent']
------------------------------
模型 ID: models/gemini-2.5-flash-native-audio-preview-09-2025
顯示名稱: Gemini 2.5 Flash Native Audio Preview 09-2025
支援功能: ['countTokens', 'bidiGenerateContent']
------------------------------
模型 ID: models/gemini-2.5-flash-native-audio-preview-12-2025
顯示名稱: Gemini 2.5 Flash Native Audio Preview 12-2025
支援功能: ['countTokens', 'bidiGenerateContent']
------------------------------