程式碼:
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 68 | import random import ollama # 模擬傳感器數據 def get_sensor_data(): data = { "PM2.5": round(random.uniform(10, 150), 2), # μg/m³ "CO2": round(random.uniform(350, 2000), 2), # ppm "Temperature": round(random.uniform(15, 35), 2), # °C "Humidity": round(random.uniform(30, 90), 2), # % } print(f"收集的傳感器數據:{data}") return data # 將傳感器數據轉為分析描述 def prepare_prompt(sensor_data): prompt = ( f"以下是環境監測數據:\n" f"- PM2.5 濃度:{sensor_data['PM2.5']} μg/m³\n" f"- 二氧化碳濃度:{sensor_data['CO2']} ppm\n" f"- 溫度:{sensor_data['Temperature']} °C\n" f"- 濕度:{sensor_data['Humidity']} %\n" f"請根據這些數據分析空氣品質,並提供環境保護建議。" ) print(f"生成的分析請求描述:\n{prompt}") return prompt # 與 Ollama 交互進行分析 def analyze_with_ollama(question_1, ans_1, question_2): try: # 替換為適用的 ollama.chat 調用方法 response = ollama.chat( model="llama3.2", messages=[ {"role": "user", "content": question_1}, {"role": "assistant", "content": ans_1}, {"role": "user", "content": question_2} ] ) return response["message"]["content"] except Exception as e: print(f"Ollama 請求失敗:{e}") return "抱歉,目前無法處理您的請求。" # 主程序 if __name__ == "__main__": print("啟動環境監測系統...") # 獲取傳感器數據 sensor_data = get_sensor_data() # 生成描述作為第一個問題 question_1 = "什麼是空氣品質的標準範圍?" ans_1 = "空氣品質指標範圍取決於 PM2.5 和 CO2 等參數的濃度,需保持在安全值內。" # 第二個問題為傳感器數據的分析描述 question_2 = prepare_prompt(sensor_data) # 與 Ollama 交互,獲取分析結果 analysis_result = analyze_with_ollama(question_1, ans_1, question_2) # 顯示結果 print("\nOllama 的分析與建議:") print(analysis_result) # 保存結果至檔案(可選) with open("environment_analysis.txt", "w", encoding="utf-8") as file: file.write("環境監測結果分析:\n") file.write(analysis_result) |
啟動環境監測系統...
收集的傳感器數據:{'PM2.5': 111.52, 'CO2': 1858.85, 'Temperature': 28.9, 'Humidity': 46.26}
生成的分析請求描述:
以下是環境監測數據:
- PM2.5 濃度:111.52 μg/m³
- 二氧化碳濃度:1858.85 ppm
- 溫度:28.9 °C
- 濕度:46.26 %
請根據這些數據分析空氣品質,並提供環境保護建議。
Ollama 的分析與建議:
哇,looks like we've got a bit of a air quality issue here!
根據給出的數據,我們可以看到 PM2.5 濃度超出安全值範圍,達到 111.52 μg/m³。這是個大問題,因為小型颗粒物可以引起呼吸系統的損害和其他健康問題。
二氧化碳濃度也處於相對高位,達到 1858.85 ppm。这可能會使環境質量受到影響。
其他數據,如溫度和濕度,並未超出正常範圍,但仍需要謹慎評估這些數據的影響。
因此,我們可以給出了以下空氣品質分析和環境保護建議:
1. **減少污染源**:建議在家中使用空氣清潔器,增加室內植物,以及減少交通或業界中的尾氣。
2. **提升外界空氣 quality**:請與當地政府或者環境監測機構聯繫,以便了解是否有必要進行空氣污染治理工作。
3. **增強預防措施**:建議使用呼吸機或空壓衣物,或者增加室內的氧氣含量來降低對小型颗粒物的暴露。
讓我們一起維護一個健康且穩定的環境!
第二次執行結果:
第二次執行結果:
啟動環境監測系統...
收集的傳感器數據:{'PM2.5': 53.52, 'CO2': 1685.39, 'Temperature': 31.22, 'Humidity': 57.75}
生成的分析請求描述:
以下是環境監測數據:
- PM2.5 濃度:53.52 μg/m³
- 二氧化碳濃度:1685.39 ppm
- 溫度:31.22 °C
- 濕度:57.75 %
請根據這些數據分析空氣品質,並提供環境保護建議。
Ollama 的分析與建議:
對不起!我是 Mario!*
根據給出的數據,我們可以進行以下分析:
1. **PM2.5 濃度**:53.52 μg/m³ >安全值上限(通常為 35 μg/m³)。這表明空氣中有小颗粒物的污染,對人體健康和環境有害。
2. **二氧化碳濃度**:1685.39 ppm >安全值上限(通常為 400-700 ppm)。這表明空氣中的二氧化碳含量較高,這可能是由於燃油排放、交通機動車等因素導致的。
3. **溫度**:31.22 °C 這麼高,可能會引發熱相關疾病。建議在這個溫度下,保持空調或避免外出活動。
4. **濕度**:57.75% 這麼高,表明天氣太濕了,可能導致天花病等感染。
綜合分析後,我們可以提供以下環境保護建議:
1. ** PM2.5 的控制**:建議在空間內使用空心的濾網或空心的過濾系統來控制PM2.5濃度。
2. **二氧化碳的降低**:建議改善交通機動車和其他排放污染物的源頭,以減少空氣中二氧化碳的含量。
3. **溫度控制**:建議在高溫天氣時,保持空調或使用冷敷來降低身體溫度。
4. **濕度的處理**:建議在濕潤天氣時,保持乾燥的環境,避免感染性疾病。
*以上分析結果基於一般原則,由於每個地方都有不同的空氣污染標準,我們建議對各地都進行具體評估和應用。
如果您需要進一步評估或提供更多資訊,我們可以一起研究!
沒有留言:
張貼留言