Update app.py
Browse files
app.py
CHANGED
|
@@ -5,9 +5,9 @@ from groq import Groq
|
|
| 5 |
# APIキーの設定
|
| 6 |
try:
|
| 7 |
client = Groq(api_key=st.secrets["GROQ_API_KEY"])
|
| 8 |
-
|
| 9 |
except Exception as e:
|
| 10 |
-
|
| 11 |
|
| 12 |
# Streamlitアプリケーションのタイトルと説明
|
| 13 |
st.title("Groq APIによるAIチャットボット")
|
|
@@ -33,31 +33,36 @@ if prompt := st.chat_input("質問を入力してください:"):
|
|
| 33 |
|
| 34 |
try:
|
| 35 |
response = client.chat.completions.create(
|
| 36 |
-
model="llama3-
|
| 37 |
messages=[{"role": "user", "content": prompt}],
|
| 38 |
stream=True # ストリーミングモードを有効にする
|
| 39 |
)
|
| 40 |
-
|
| 41 |
|
| 42 |
# ストリーミングで部分的な応答をリアルタイムで表示
|
| 43 |
for chunk in response:
|
| 44 |
-
|
| 45 |
-
|
| 46 |
-
|
| 47 |
-
if chunk_text: # 空でないコンテンツがあれば処理
|
| 48 |
response_text += chunk_text
|
| 49 |
-
|
| 50 |
-
message_placeholder.markdown(response_text) # 逐次表示
|
| 51 |
|
| 52 |
# 最終的な応答を確定表示
|
| 53 |
message_placeholder.markdown(response_text)
|
| 54 |
st.session_state['conversation_history'].append({"role": "assistant", "content": response_text})
|
| 55 |
-
|
| 56 |
|
| 57 |
except Exception as e:
|
| 58 |
-
|
|
|
|
|
|
|
| 59 |
|
| 60 |
# 会話履歴をリセットするボタン
|
| 61 |
if st.button("会話をリセット"):
|
| 62 |
st.session_state['conversation_history'] = []
|
| 63 |
st.experimental_rerun()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 5 |
# APIキーの設定
|
| 6 |
try:
|
| 7 |
client = Groq(api_key=st.secrets["GROQ_API_KEY"])
|
| 8 |
+
st.success("APIクライアントが正常に設定されました。")
|
| 9 |
except Exception as e:
|
| 10 |
+
st.error(f"APIクライアントの設定に失敗しました: {e}")
|
| 11 |
|
| 12 |
# Streamlitアプリケーションのタイトルと説明
|
| 13 |
st.title("Groq APIによるAIチャットボット")
|
|
|
|
| 33 |
|
| 34 |
try:
|
| 35 |
response = client.chat.completions.create(
|
| 36 |
+
model="llama3-70b-8192", # Groq APIで利用可能な正確なモデル名に更新
|
| 37 |
messages=[{"role": "user", "content": prompt}],
|
| 38 |
stream=True # ストリーミングモードを有効にする
|
| 39 |
)
|
| 40 |
+
st.success("APIリクエストが正常に送信されました。")
|
| 41 |
|
| 42 |
# ストリーミングで部分的な応答をリアルタイムで表示
|
| 43 |
for chunk in response:
|
| 44 |
+
if hasattr(chunk.choices[0].delta, 'content'):
|
| 45 |
+
chunk_text = chunk.choices[0].delta.content
|
| 46 |
+
if chunk_text:
|
|
|
|
| 47 |
response_text += chunk_text
|
| 48 |
+
message_placeholder.markdown(response_text)
|
|
|
|
| 49 |
|
| 50 |
# 最終的な応答を確定表示
|
| 51 |
message_placeholder.markdown(response_text)
|
| 52 |
st.session_state['conversation_history'].append({"role": "assistant", "content": response_text})
|
| 53 |
+
st.success("APIからの応答が正常に処理されました。")
|
| 54 |
|
| 55 |
except Exception as e:
|
| 56 |
+
error_message = f"APIリクエストの処理中にエラーが発生しました: {e}"
|
| 57 |
+
st.error(error_message)
|
| 58 |
+
print(error_message) # コンソールにもログを出力
|
| 59 |
|
| 60 |
# 会話履歴をリセットするボタン
|
| 61 |
if st.button("会話をリセット"):
|
| 62 |
st.session_state['conversation_history'] = []
|
| 63 |
st.experimental_rerun()
|
| 64 |
+
|
| 65 |
+
# デバッグ情報の表示(開発中のみ使用)
|
| 66 |
+
if st.checkbox("デバッグ情報を表示"):
|
| 67 |
+
st.write("会話履歴:", st.session_state['conversation_history'])
|
| 68 |
+
st.write("API Key設定状況:", "設定済み" if "GROQ_API_KEY" in st.secrets else "未設定")
|