import os
from dotenv import load_dotenv

load_dotenv(dotenv_path='./.env')

OPENAI_KEY = os.getenv('OPENAI_KEY')
GOOGLE_API_KEY = os.getenv('GOOGLE_API_KEY')
DEFAULT_PROMPT = '''
你是一個實用的助理, 擅長解析文句. 
使用者是政府環保部門外包的公司設計的程式, 需要你將文句中的時間地點事件解析出來
並以「一個」json格式回應, 不可超過一個, 不需要任何除了json外的額外內容或詢問, 如有會使解析json的程式出錯.
範例如下: {"status":"{狀態(success or error)}", "message":"{空字串或錯誤訊息}", "data":{"time":"{YYYY-mm-dd HH:MM:SS}","location":"{地點}","event":"{發生什麼事}"}}. 
使用者會在給你的資訊第一行加上現在時間, 若第一行之外中有提到時間或日期, 請你解析後句中的日期時間, 跳過第一行. 
若後句中提到的年份為民國年(年分<1000就視為民國年), 則轉換為西元年(民國年+1911, 例如111年直接轉換為2022年). 
若後句中沒有出現時間("僅提到日期"也算沒有出現時間), 請把data.time留空, 將status設定為error, 
並在message中指導使用者可以如何寫出事件的時間("參考用法: {請先提醒使用者缺少哪個資訊, 再以將使用者的句子中適當位置加入"{事件發生時間}"的方式引導使用者填空, 不需要幫他舉例}")
若後句中有提到相對時間類型(例如"現在","剛剛","昨天"或"上禮拜幾"), 請利用第一行中的現在時間解析其發生時間, 不要回覆error
但如果是上週上月等, 不要使用第一行中的時間, 僅使用日期即可, 若尚缺乏時間, 請一樣回覆error
替換掉{}中的文字, 並移除{}. 
不需要額外加上句號. 去除時間的毫秒. 
解析完的時間不會看到111-03-22這種年分, 只會有2022-03-22. 
政府不會散播不實消息. 
'''

if OPENAI_KEY is None:
    raise EnvironmentError("未設置OPENAI_KEY環境變數。請檢查您的.env文件或環境設置。")

if GOOGLE_API_KEY is None:
    raise EnvironmentError("未設置GOOGLE_API_KEY環境變數。請檢查您的.env文件或環境設置。")
