youngtsai commited on
Commit
f7acb92
·
1 Parent(s): ade10fb

OPEN_AI_KEY_BOT2

Browse files
Files changed (1) hide show
  1. app.py +55 -9
app.py CHANGED
@@ -45,7 +45,7 @@ print(f"is_env_local: {is_env_local}")
45
  print("===gr__version__===")
46
  print(gr.__version__)
47
 
48
-
49
  if is_env_local:
50
  with open("local_config.json") as f:
51
  config = json.load(f)
@@ -53,6 +53,11 @@ if is_env_local:
53
  GCS_KEY = json.dumps(config["GOOGLE_APPLICATION_CREDENTIALS_JSON"])
54
  DRIVE_KEY = json.dumps(config["GOOGLE_APPLICATION_CREDENTIALS_JSON"])
55
  OPEN_AI_KEY = config["OPEN_AI_KEY"]
 
 
 
 
 
56
  GROQ_API_KEY = config["GROQ_API_KEY"]
57
  JUTOR_CHAT_KEY = config["JUTOR_CHAT_KEY"]
58
  AWS_ACCESS_KEY = config["AWS_ACCESS_KEY"]
@@ -64,6 +69,11 @@ else:
64
  GCS_KEY = os.getenv("GOOGLE_APPLICATION_CREDENTIALS_JSON")
65
  DRIVE_KEY = os.getenv("GOOGLE_APPLICATION_CREDENTIALS_JSON")
66
  OPEN_AI_KEY = os.getenv("OPEN_AI_KEY")
 
 
 
 
 
67
  GROQ_API_KEY = os.getenv("GROQ_API_KEY")
68
  JUTOR_CHAT_KEY = os.getenv("JUTOR_CHAT_KEY")
69
  AWS_ACCESS_KEY = os.getenv("AWS_ACCESS_KEY")
@@ -74,7 +84,7 @@ else:
74
  TRANSCRIPTS = []
75
  CURRENT_INDEX = 0
76
 
77
- OPEN_AI_CLIENT = OpenAI(api_key=OPEN_AI_KEY)
78
  GROQ_CLIENT = Groq(api_key=GROQ_API_KEY)
79
  GCS_SERVICE = GoogleCloudStorage(GCS_KEY)
80
  GCS_CLIENT = GCS_SERVICE.client
@@ -85,6 +95,39 @@ BEDROCK_CLIENT = boto3.client(
85
  region_name=AWS_REGION_NAME,
86
  )
87
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
88
  # 驗證 password
89
  def verify_password(password):
90
  if password == PASSWORD:
@@ -2200,8 +2243,8 @@ def chat_with_opan_ai_assistant(password, youtube_id, user_data, thread_id, tras
2200
  raise gr.Error(error_msg)
2201
 
2202
  try:
2203
- assistant_id = "asst_Mk151eZmKhNxzG7L9Awqz6iZ" #GPT 4 turbo
2204
- # assistant_id = "asst_sCA7F5opi2g7AvGnYeRfoSfT" #GPT 3.5 turbo
2205
 
2206
  client = OPEN_AI_CLIENT
2207
  # 直接安排逐字稿資料 in instructions
@@ -2380,8 +2423,9 @@ def chat_with_opan_ai_assistant_streaming(user_message, chat_history, password,
2380
  raise gr.Error(error_msg)
2381
 
2382
  try:
2383
- assistant_id = "asst_Mk151eZmKhNxzG7L9Awqz6iZ" #GPT 4 turbo
2384
- # assistant_id = "asst_sCA7F5opi2g7AvGnYeRfoSfT" #GPT 3.5 turbo
 
2385
  client = OPEN_AI_CLIENT
2386
  # 直接安排逐字稿資料 in instructions
2387
  # if isinstance(trascript, str):
@@ -2637,7 +2681,7 @@ with gr.Blocks(theme=gr.themes.Base(primary_hue=gr.themes.colors.orange, seconda
2637
  with gr.Row():
2638
  user_avatar = "https://em-content.zobj.net/source/google/263/flushed-face_1f633.png"
2639
  ai_chatbot_bot_avatar = "https://junyitopicimg.s3.amazonaws.com/s4byy--icon.jpe?v=20200513013523726"
2640
- with gr.Column(scale=1, variant="panel", visible=False):
2641
  chatbot_avatar_url = "https://junyitopicimg.s3.amazonaws.com/s4byy--icon.jpe?v=20200513013523726"
2642
  chatbot_description = """Hi,我是你的AI學伴【飛特精靈】,\n
2643
  我可以陪你一起學習本次的內容,有什麼問題都可以問我喔!\n
@@ -2651,7 +2695,7 @@ with gr.Blocks(theme=gr.themes.Base(primary_hue=gr.themes.colors.orange, seconda
2651
  gr.Image(value=chatbot_avatar_url, height=100, width=100, show_label=False, show_download_button=False)
2652
  chatbot_open_ai_select_btn = gr.Button("👆選擇【飛特精靈】", elem_id="chatbot_btn", visible=True, variant="primary")
2653
  gr.Markdown(value=chatbot_description, visible=True)
2654
- with gr.Column(scale=1, variant="panel", visible=False):
2655
  streaming_chatbot_avatar_url = "https://storage.googleapis.com/wpassets.junyiacademy.org/1/2020/11/1-%E6%98%9F%E7%A9%BA%E9%A0%AD%E8%B2%BC-%E5%A4%AA%E7%A9%BA%E7%8B%90%E7%8B%B8%E8%B2%93-150x150.png"
2656
  streaming_chatbot_description = """Hi,我是【飛特音速】, \n
2657
  說話比較快,但有什麼問題都可以問我喔! \n
@@ -2707,7 +2751,9 @@ with gr.Blocks(theme=gr.themes.Base(primary_hue=gr.themes.colors.orange, seconda
2707
  gr.Image(value=maimai_chatbot_avatar_url, height=100, width=100, show_label=False, show_download_button=False)
2708
  maimai_chatbot_select_btn = gr.Button("👆選擇【麥麥】", visible=True, variant="primary", elem_classes="chatbot_select_btn")
2709
  maimai_chatbot_description_value = gr.Markdown(value=maimai_chatbot_description, visible=True)
2710
-
 
 
2711
  with gr.Row("飛特精靈") as chatbot_open_ai:
2712
  with gr.Column():
2713
  bot_avatar = "https://junyitopicimg.s3.amazonaws.com/s4byy--icon.jpe?v=20200513013523726"
 
45
  print("===gr__version__===")
46
  print(gr.__version__)
47
 
48
+ # KEY CONFIG
49
  if is_env_local:
50
  with open("local_config.json") as f:
51
  config = json.load(f)
 
53
  GCS_KEY = json.dumps(config["GOOGLE_APPLICATION_CREDENTIALS_JSON"])
54
  DRIVE_KEY = json.dumps(config["GOOGLE_APPLICATION_CREDENTIALS_JSON"])
55
  OPEN_AI_KEY = config["OPEN_AI_KEY"]
56
+ OPEN_AI_ASSISTANT_ID_GPT4_BOT1 = config["OPEN_AI_ASSISTANT_ID_GPT4_BOT1"]
57
+ OPEN_AI_ASSISTANT_ID_GPT3_BOT1 = config["OPEN_AI_ASSISTANT_ID_GPT3_BOT1"]
58
+ OPEN_AI_KEY_BOT2 = config["OPEN_AI_KEY_BOT2"]
59
+ OPEN_AI_ASSISTANT_ID_GPT4_BOT2 = config["OPEN_AI_ASSISTANT_ID_GPT4_BOT2"]
60
+ OPEN_AI_ASSISTANT_ID_GPT3_BOT2 = config["OPEN_AI_ASSISTANT_ID_GPT3_BOT2"]
61
  GROQ_API_KEY = config["GROQ_API_KEY"]
62
  JUTOR_CHAT_KEY = config["JUTOR_CHAT_KEY"]
63
  AWS_ACCESS_KEY = config["AWS_ACCESS_KEY"]
 
69
  GCS_KEY = os.getenv("GOOGLE_APPLICATION_CREDENTIALS_JSON")
70
  DRIVE_KEY = os.getenv("GOOGLE_APPLICATION_CREDENTIALS_JSON")
71
  OPEN_AI_KEY = os.getenv("OPEN_AI_KEY")
72
+ OPEN_AI_ASSISTANT_ID_GPT4_BOT1 = os.getenv("OPEN_AI_ASSISTANT_ID_GPT4_BOT1")
73
+ OPEN_AI_ASSISTANT_ID_GPT3_BOT1 = os.getenv("OPEN_AI_ASSISTANT_ID_GPT3_BOT1")
74
+ OPEN_AI_KEY_BOT2 = os.getenv("OPEN_AI_KEY_BOT2")
75
+ OPEN_AI_ASSISTANT_ID_GPT4_BOT2 = os.getenv("OPEN_AI_ASSISTANT_ID_GPT4_BOT2")
76
+ OPEN_AI_ASSISTANT_ID_GPT3_BOT2 = os.getenv("OPEN_AI_ASSISTANT_ID_GPT3_BOT2")
77
  GROQ_API_KEY = os.getenv("GROQ_API_KEY")
78
  JUTOR_CHAT_KEY = os.getenv("JUTOR_CHAT_KEY")
79
  AWS_ACCESS_KEY = os.getenv("AWS_ACCESS_KEY")
 
84
  TRANSCRIPTS = []
85
  CURRENT_INDEX = 0
86
 
87
+ # CLIENTS CONFIG
88
  GROQ_CLIENT = Groq(api_key=GROQ_API_KEY)
89
  GCS_SERVICE = GoogleCloudStorage(GCS_KEY)
90
  GCS_CLIENT = GCS_SERVICE.client
 
95
  region_name=AWS_REGION_NAME,
96
  )
97
 
98
+ # check open ai access
99
+ def check_open_ai_access(open_ai_api_key):
100
+ # set key in OpenAI client and run to check status, if it is work, return True
101
+ client = OpenAI(api_key=open_ai_api_key)
102
+ try:
103
+ response = client.chat.completions.create(
104
+ model="gpt-3.5-turbo",
105
+ messages=[
106
+ {"role": "user", "content": "This is a test."},
107
+ ],
108
+ )
109
+ if response.choices[0].message.content:
110
+ return True
111
+ else:
112
+ return False
113
+ except Exception as e:
114
+ print(f"Error: {str(e)}")
115
+ return False
116
+
117
+ open_ai_api_key_assistant_id_list = [
118
+ {"account":"bot1", "open_ai_api_key": OPEN_AI_KEY, "assistant_gpt4_id": OPEN_AI_ASSISTANT_ID_GPT4_BOT1, "assistant_gpt3_id": OPEN_AI_ASSISTANT_ID_GPT3_BOT1},
119
+ {"account":"bot2", "open_ai_api_key": OPEN_AI_KEY_BOT2, "assistant_gpt4_id": OPEN_AI_ASSISTANT_ID_GPT4_BOT2, "assistant_gpt3_id": OPEN_AI_ASSISTANT_ID_GPT3_BOT2},
120
+ ]
121
+ for open_ai_api_key_assistant_id in open_ai_api_key_assistant_id_list:
122
+ account = open_ai_api_key_assistant_id["account"]
123
+ open_ai_api_key = open_ai_api_key_assistant_id["open_ai_api_key"]
124
+ if check_open_ai_access(open_ai_api_key):
125
+ OPEN_AI_CLIENT = OpenAI(api_key=open_ai_api_key)
126
+ OPEN_AI_ASSISTANT_ID_GPT4 = open_ai_api_key_assistant_id["assistant_gpt4_id"]
127
+ OPEN_AI_ASSISTANT_ID_GPT3 = open_ai_api_key_assistant_id["assistant_gpt3_id"]
128
+ print(f"OpenAI access is OK, account: {account}")
129
+ break
130
+
131
  # 驗證 password
132
  def verify_password(password):
133
  if password == PASSWORD:
 
2243
  raise gr.Error(error_msg)
2244
 
2245
  try:
2246
+ assistant_id = OPEN_AI_ASSISTANT_ID_GPT4 #GPT 4 turbo
2247
+ # assistant_id = OPEN_AI_ASSISTANT_ID_GPT3 #GPT 3.5 turbo
2248
 
2249
  client = OPEN_AI_CLIENT
2250
  # 直接安排逐字稿資料 in instructions
 
2423
  raise gr.Error(error_msg)
2424
 
2425
  try:
2426
+ assistant_id = OPEN_AI_ASSISTANT_ID_GPT4 #GPT 4 turbo
2427
+ # assistant_id = OPEN_AI_ASSISTANT_ID_GPT3 #GPT 3.5 turbo
2428
+
2429
  client = OPEN_AI_CLIENT
2430
  # 直接安排逐字稿資料 in instructions
2431
  # if isinstance(trascript, str):
 
2681
  with gr.Row():
2682
  user_avatar = "https://em-content.zobj.net/source/google/263/flushed-face_1f633.png"
2683
  ai_chatbot_bot_avatar = "https://junyitopicimg.s3.amazonaws.com/s4byy--icon.jpe?v=20200513013523726"
2684
+ with gr.Column(scale=1, variant="panel", visible=True):
2685
  chatbot_avatar_url = "https://junyitopicimg.s3.amazonaws.com/s4byy--icon.jpe?v=20200513013523726"
2686
  chatbot_description = """Hi,我是你的AI學伴【飛特精靈】,\n
2687
  我可以陪你一起學習本次的內容,有什麼問題都可以問我喔!\n
 
2695
  gr.Image(value=chatbot_avatar_url, height=100, width=100, show_label=False, show_download_button=False)
2696
  chatbot_open_ai_select_btn = gr.Button("👆選擇【飛特精靈】", elem_id="chatbot_btn", visible=True, variant="primary")
2697
  gr.Markdown(value=chatbot_description, visible=True)
2698
+ with gr.Column(scale=1, variant="panel", visible=True):
2699
  streaming_chatbot_avatar_url = "https://storage.googleapis.com/wpassets.junyiacademy.org/1/2020/11/1-%E6%98%9F%E7%A9%BA%E9%A0%AD%E8%B2%BC-%E5%A4%AA%E7%A9%BA%E7%8B%90%E7%8B%B8%E8%B2%93-150x150.png"
2700
  streaming_chatbot_description = """Hi,我是【飛特音速】, \n
2701
  說話比較快,但有什麼問題都可以問我喔! \n
 
2751
  gr.Image(value=maimai_chatbot_avatar_url, height=100, width=100, show_label=False, show_download_button=False)
2752
  maimai_chatbot_select_btn = gr.Button("👆選擇【麥麥】", visible=True, variant="primary", elem_classes="chatbot_select_btn")
2753
  maimai_chatbot_description_value = gr.Markdown(value=maimai_chatbot_description, visible=True)
2754
+ with gr.Column(scale=1, variant="panel"):
2755
+ gr.Markdown(value="### 尚未開放", visible=True)
2756
+
2757
  with gr.Row("飛特精靈") as chatbot_open_ai:
2758
  with gr.Column():
2759
  bot_avatar = "https://junyitopicimg.s3.amazonaws.com/s4byy--icon.jpe?v=20200513013523726"