Spaces:
Paused
Paused
Update app.py
Browse files
app.py
CHANGED
|
@@ -16,7 +16,7 @@ import time
|
|
| 16 |
import os
|
| 17 |
import logging
|
| 18 |
|
| 19 |
-
#
|
| 20 |
import google.generativeai as genai
|
| 21 |
|
| 22 |
# ロギング設定
|
|
@@ -32,12 +32,13 @@ class GeminiRequest(BaseModel):
|
|
| 32 |
def generate_html_from_text(text):
|
| 33 |
"""テキストからHTMLを生成する"""
|
| 34 |
try:
|
| 35 |
-
# API
|
| 36 |
api_key = os.environ.get("GEMINI_API_KEY")
|
| 37 |
if not api_key:
|
| 38 |
logger.error("GEMINI_API_KEY 環境変数が設定されていません")
|
| 39 |
raise ValueError("GEMINI_API_KEY 環境変数が設定されていません")
|
| 40 |
|
|
|
|
| 41 |
genai.configure(api_key=api_key)
|
| 42 |
|
| 43 |
# システムプロンプト(リクエスト例と同じものを使用)
|
|
@@ -137,7 +138,24 @@ def generate_html_from_text(text):
|
|
| 137 |
- フッターに出典情報と関連するFont Awesomeアイコン(fa-book, fa-citation等)を明記
|
| 138 |
## 変換する文章/記事
|
| 139 |
ーーー<ユーザーが入力(または添付)>ーーー"""
|
| 140 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 141 |
# 生成設定
|
| 142 |
generation_config = {
|
| 143 |
"temperature": 0.7,
|
|
@@ -146,24 +164,13 @@ def generate_html_from_text(text):
|
|
| 146 |
"max_output_tokens": 8192,
|
| 147 |
}
|
| 148 |
|
| 149 |
-
#
|
| 150 |
-
|
| 151 |
-
model_name="gemini-1.5-pro",
|
| 152 |
-
generation_config=generation_config
|
| 153 |
-
)
|
| 154 |
|
| 155 |
-
#
|
| 156 |
-
logger.info(f"Gemini APIにリクエストを送信: テキスト長さ = {len(text)}")
|
| 157 |
-
|
| 158 |
-
# システムインストラクションとユーザープロンプトを設定
|
| 159 |
response = model.generate_content(
|
| 160 |
-
|
| 161 |
-
|
| 162 |
-
"role": "user",
|
| 163 |
-
"parts": [text]
|
| 164 |
-
}
|
| 165 |
-
],
|
| 166 |
-
system_instruction=system_instruction
|
| 167 |
)
|
| 168 |
|
| 169 |
# レスポンスからHTMLを抽出
|
|
|
|
| 16 |
import os
|
| 17 |
import logging
|
| 18 |
|
| 19 |
+
# 正しいGemini関連のインポート
|
| 20 |
import google.generativeai as genai
|
| 21 |
|
| 22 |
# ロギング設定
|
|
|
|
| 32 |
def generate_html_from_text(text):
|
| 33 |
"""テキストからHTMLを生成する"""
|
| 34 |
try:
|
| 35 |
+
# APIキーの取得と設定
|
| 36 |
api_key = os.environ.get("GEMINI_API_KEY")
|
| 37 |
if not api_key:
|
| 38 |
logger.error("GEMINI_API_KEY 環境変数が設定されていません")
|
| 39 |
raise ValueError("GEMINI_API_KEY 環境変数が設定されていません")
|
| 40 |
|
| 41 |
+
# Gemini APIの設定
|
| 42 |
genai.configure(api_key=api_key)
|
| 43 |
|
| 44 |
# システムプロンプト(リクエスト例と同じものを使用)
|
|
|
|
| 138 |
- フッターに出典情報と関連するFont Awesomeアイコン(fa-book, fa-citation等)を明記
|
| 139 |
## 変換する文章/記事
|
| 140 |
ーーー<ユーザーが入力(または添付)>ーーー"""
|
| 141 |
+
|
| 142 |
+
# モデルを初期化して処理
|
| 143 |
+
logger.info(f"Gemini APIにリクエストを送信: テキスト長さ = {len(text)}")
|
| 144 |
+
|
| 145 |
+
# 利用可能なモデルの確認
|
| 146 |
+
try:
|
| 147 |
+
models = genai.list_models()
|
| 148 |
+
logger.info(f"利用可能なモデル: {[m.name for m in models if 'gemini' in m.name]}")
|
| 149 |
+
except Exception as e:
|
| 150 |
+
logger.warning(f"モデル一覧取得エラー: {e}")
|
| 151 |
+
|
| 152 |
+
# モデル選択
|
| 153 |
+
try:
|
| 154 |
+
model = genai.GenerativeModel('gemini-1.5-pro')
|
| 155 |
+
except Exception as e:
|
| 156 |
+
logger.warning(f"gemini-1.5-proモデル利用不可: {e}, gemini-proを試します")
|
| 157 |
+
model = genai.GenerativeModel('gemini-pro')
|
| 158 |
+
|
| 159 |
# 生成設定
|
| 160 |
generation_config = {
|
| 161 |
"temperature": 0.7,
|
|
|
|
| 164 |
"max_output_tokens": 8192,
|
| 165 |
}
|
| 166 |
|
| 167 |
+
# プロンプト構築
|
| 168 |
+
prompt = f"{system_instruction}\n\n{text}"
|
|
|
|
|
|
|
|
|
|
| 169 |
|
| 170 |
+
# コンテンツ生成
|
|
|
|
|
|
|
|
|
|
| 171 |
response = model.generate_content(
|
| 172 |
+
prompt,
|
| 173 |
+
generation_config=generation_config
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 174 |
)
|
| 175 |
|
| 176 |
# レスポンスからHTMLを抽出
|