Yasu777 commited on
Commit
7a21f64
·
verified ·
1 Parent(s): 81bb696

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +46 -7
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="KizukiChat",
8
  page_icon="💻",
9
  layout="wide"
10
  )
11
 
12
  # タイトルと説明
13
- st.title("KizukiChat 💻")
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
- ["llama3-70b-8192", "llama3-8b-8192", "mixtral-8x7b-32768"]
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, "モデル情報がありません。"))