Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -1,34 +1,54 @@
|
|
| 1 |
import streamlit as st
|
| 2 |
import os
|
|
|
|
| 3 |
from groq import Groq
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4 |
|
| 5 |
# Streamlitアプリのセットアップ
|
| 6 |
st.set_page_config(
|
| 7 |
-
page_title="
|
| 8 |
page_icon="💻",
|
| 9 |
layout="wide"
|
| 10 |
)
|
| 11 |
|
| 12 |
# タイトルと説明
|
| 13 |
-
st.title("
|
| 14 |
st.markdown("このアプリはGroq APIを使用したコーディング特化のAIチャットアシスタントです。")
|
| 15 |
|
| 16 |
# APIキーの取得(Hugging Face Spaces環境変数から)
|
| 17 |
api_key = os.getenv("GROQ_API_KEY", "")
|
| 18 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 19 |
# モデル選択
|
| 20 |
model_option = st.sidebar.selectbox(
|
| 21 |
"モデルを選択",
|
| 22 |
-
|
| 23 |
)
|
| 24 |
|
| 25 |
-
# システムプロンプト
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 26 |
system_prompt = st.sidebar.text_area(
|
| 27 |
"システムプロンプト",
|
| 28 |
-
value=
|
| 29 |
height=150
|
| 30 |
)
|
| 31 |
|
|
|
|
|
|
|
|
|
|
| 32 |
# チャット履歴の初期化
|
| 33 |
if "messages" not in st.session_state:
|
| 34 |
st.session_state.messages = []
|
|
@@ -89,7 +109,7 @@ st.sidebar.markdown("---")
|
|
| 89 |
st.sidebar.markdown("### 使い方")
|
| 90 |
st.sidebar.markdown("""
|
| 91 |
1. Hugging Face Spacesの環境変数でGROQ_API_KEYを設定
|
| 92 |
-
2. 使用するモデルを選択
|
| 93 |
3. 必要に応じてシステムプロンプトを調整
|
| 94 |
4. チャット入力欄に質問を入力
|
| 95 |
""")
|
|
@@ -105,4 +125,23 @@ if not api_key:
|
|
| 105 |
2. Settings > Repository secrets
|
| 106 |
3. 新しいシークレットを追加: キー名 `GROQ_API_KEY`、値に自分のGroq APIキーを入力
|
| 107 |
4. アプリを再起動
|
| 108 |
-
""")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
import streamlit as st
|
| 2 |
import os
|
| 3 |
+
|
| 4 |
from groq import Groq
|
| 5 |
+
from prompts import load_system_prompt, create_default_prompt_files
|
| 6 |
+
|
| 7 |
+
# デフォルトのプロンプトファイルを作成
|
| 8 |
+
create_default_prompt_files()
|
| 9 |
|
| 10 |
# Streamlitアプリのセットアップ
|
| 11 |
st.set_page_config(
|
| 12 |
+
page_title="コーディングアシスタント",
|
| 13 |
page_icon="💻",
|
| 14 |
layout="wide"
|
| 15 |
)
|
| 16 |
|
| 17 |
# タイトルと説明
|
| 18 |
+
st.title("コーディングアシスタント 💻")
|
| 19 |
st.markdown("このアプリはGroq APIを使用したコーディング特化のAIチャットアシスタントです。")
|
| 20 |
|
| 21 |
# APIキーの取得(Hugging Face Spaces環境変数から)
|
| 22 |
api_key = os.getenv("GROQ_API_KEY", "")
|
| 23 |
|
| 24 |
+
# 使用可能なモデルのリスト
|
| 25 |
+
MODELS = [
|
| 26 |
+
"mistral-saba-24b",
|
| 27 |
+
"qwen-2.5-coder-32b",
|
| 28 |
+
"deepseek-r1-distill-llama-70b"
|
| 29 |
+
]
|
| 30 |
+
|
| 31 |
# モデル選択
|
| 32 |
model_option = st.sidebar.selectbox(
|
| 33 |
"モデルを選択",
|
| 34 |
+
MODELS
|
| 35 |
)
|
| 36 |
|
| 37 |
+
# モデルが変更されたときにシステムプロンプトを更新
|
| 38 |
+
if "previous_model" not in st.session_state or st.session_state.previous_model != model_option:
|
| 39 |
+
st.session_state.previous_model = model_option
|
| 40 |
+
st.session_state.system_prompt = load_system_prompt(model_option)
|
| 41 |
+
|
| 42 |
+
# システムプロンプトの表示と編集
|
| 43 |
system_prompt = st.sidebar.text_area(
|
| 44 |
"システムプロンプト",
|
| 45 |
+
value=st.session_state.system_prompt,
|
| 46 |
height=150
|
| 47 |
)
|
| 48 |
|
| 49 |
+
# システムプロンプトの変更を保存
|
| 50 |
+
st.session_state.system_prompt = system_prompt
|
| 51 |
+
|
| 52 |
# チャット履歴の初期化
|
| 53 |
if "messages" not in st.session_state:
|
| 54 |
st.session_state.messages = []
|
|
|
|
| 109 |
st.sidebar.markdown("### 使い方")
|
| 110 |
st.sidebar.markdown("""
|
| 111 |
1. Hugging Face Spacesの環境変数でGROQ_API_KEYを設定
|
| 112 |
+
2. 使用するモデルを選択(モデルごとに最適化されたシステムプロンプトが自動的に設定されます)
|
| 113 |
3. 必要に応じてシステムプロンプトを調整
|
| 114 |
4. チャット入力欄に質問を入力
|
| 115 |
""")
|
|
|
|
| 125 |
2. Settings > Repository secrets
|
| 126 |
3. 新しいシークレットを追加: キー名 `GROQ_API_KEY`、値に自分のGroq APIキーを入力
|
| 127 |
4. アプリを再起動
|
| 128 |
+
""")
|
| 129 |
+
|
| 130 |
+
# モデルの詳細情報
|
| 131 |
+
st.sidebar.markdown("---")
|
| 132 |
+
st.sidebar.markdown("### モデル情報")
|
| 133 |
+
st.sidebar.markdown(f"""
|
| 134 |
+
**{model_option}**
|
| 135 |
+
|
| 136 |
+
各モデルには特性があり、特定のタスクに最適化されたシステムプロンプトが設定されています。
|
| 137 |
+
プロンプトは必要に応じて編集できます。
|
| 138 |
+
""")
|
| 139 |
+
|
| 140 |
+
# モデル特性の表示
|
| 141 |
+
model_descriptions = {
|
| 142 |
+
"mistral-saba-24b": "Mistral Sabaは24Bパラメータのモデルで、特にコード理解と文脈把握に優れています。簡潔で読みやすいコード生成が得意です。",
|
| 143 |
+
"qwen-2.5-coder-32b": "Qwen-2.5-Coderは32Bパラメータのモデルで、複雑なプログラミング問題に対する効率的なソリューション提供と多様な言語のサポートに優れています。",
|
| 144 |
+
"deepseek-r1-distill-llama-70b": "DeepSeek R1 Distillは70Bパラメータのモデルで、深い推論能力と包括的な知識を持ち、複雑なシステム設計や最適化されたコード生成が得意です。"
|
| 145 |
+
}
|
| 146 |
+
|
| 147 |
+
st.sidebar.markdown(model_descriptions.get(model_option, "モデル情報がありません。"))
|