Spaces:
Paused
Paused
Update app.py with YAML to PDF conversion via Gemini API
Browse files
app.py
CHANGED
|
@@ -44,50 +44,30 @@ async def call_gemini_api(yaml_content: str) -> str:
|
|
| 44 |
if not gemini_api_key:
|
| 45 |
raise HTTPException(status_code=500, detail="GEMINI_API_KEY環境変数が設定されていません")
|
| 46 |
|
| 47 |
-
# Gemini API
|
|
|
|
|
|
|
|
|
|
| 48 |
request_body = {
|
| 49 |
"contents": [
|
| 50 |
{
|
| 51 |
-
"role": "user",
|
| 52 |
-
"parts": [
|
| 53 |
-
{
|
| 54 |
-
"text": system_instruction
|
| 55 |
-
},
|
| 56 |
-
]
|
| 57 |
-
},
|
| 58 |
-
{
|
| 59 |
-
"role": "model",
|
| 60 |
"parts": [
|
| 61 |
{
|
| 62 |
-
"text":
|
| 63 |
-
}
|
| 64 |
-
{
|
| 65 |
-
"text": "はい、システムインストラクションとして認識しました。\nこちらはユーザーからの入力ですね。何かお手伝いできることはありますか?"
|
| 66 |
-
},
|
| 67 |
]
|
| 68 |
-
}
|
| 69 |
-
{
|
| 70 |
-
"role": "user",
|
| 71 |
-
"parts": [
|
| 72 |
-
{
|
| 73 |
-
"text": yaml_content # YAMLコンテンツをそのまま代入
|
| 74 |
-
},
|
| 75 |
-
]
|
| 76 |
-
},
|
| 77 |
],
|
| 78 |
"generationConfig": {
|
| 79 |
"temperature": 0.75,
|
| 80 |
-
"
|
| 81 |
-
|
| 82 |
-
},
|
| 83 |
-
"responseMimeType": "text/plain",
|
| 84 |
-
},
|
| 85 |
}
|
| 86 |
|
| 87 |
# Gemini APIを呼び出し
|
| 88 |
url = f"https://generativelanguage.googleapis.com/v1beta/models/{model_id}:generateContent?key={gemini_api_key}"
|
| 89 |
|
| 90 |
-
async with httpx.AsyncClient(timeout=
|
| 91 |
response = await client.post(url, json=request_body)
|
| 92 |
response.raise_for_status()
|
| 93 |
|
|
|
|
| 44 |
if not gemini_api_key:
|
| 45 |
raise HTTPException(status_code=500, detail="GEMINI_API_KEY環境変数が設定されていません")
|
| 46 |
|
| 47 |
+
# Gemini APIリクエストボディを構築(公式ドキュメント準拠のシンプルな形式)
|
| 48 |
+
# システムインストラクションとYAMLデータを結合
|
| 49 |
+
combined_prompt = f"{system_instruction}\n\n以下のYAMLデータを基にして、美しいHTMLドキュメントを生成してください。\n\n{yaml_content}"
|
| 50 |
+
|
| 51 |
request_body = {
|
| 52 |
"contents": [
|
| 53 |
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 54 |
"parts": [
|
| 55 |
{
|
| 56 |
+
"text": combined_prompt
|
| 57 |
+
}
|
|
|
|
|
|
|
|
|
|
| 58 |
]
|
| 59 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 60 |
],
|
| 61 |
"generationConfig": {
|
| 62 |
"temperature": 0.75,
|
| 63 |
+
"responseMimeType": "text/plain"
|
| 64 |
+
}
|
|
|
|
|
|
|
|
|
|
| 65 |
}
|
| 66 |
|
| 67 |
# Gemini APIを呼び出し
|
| 68 |
url = f"https://generativelanguage.googleapis.com/v1beta/models/{model_id}:generateContent?key={gemini_api_key}"
|
| 69 |
|
| 70 |
+
async with httpx.AsyncClient(timeout=60.0) as client:
|
| 71 |
response = await client.post(url, json=request_body)
|
| 72 |
response.raise_for_status()
|
| 73 |
|