仕様
モダリティ
入力
text
image
video
audio
出力
text
コード例
curl https://api.fastmetal.ai/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model": "gemini-flash-lite-free",
"messages": [{"role": "user", "content": "Hello!"}]
}'Gemini Flash Liteの実際の回答
FastMetal上で実際に記録した、標準プロンプトへの回答です。
このエラーをデバッグして
以下のエラーがPythonアプリケーションで発生しています。原因を特定して修正してください。 Traceback (most recent call last): File "app.py", line 23, in get_user_orders total = sum(order["price"] * order["quantity"] for order in orders) TypeError: unsupport…
エラーの原因は、データベースから取得した `price` のデータ型が **文字列型 (`str`)** であり、`quantity` (整数型 `int`)との間で掛け算(`*`)を行おうとしたためです。
多くの場合、データベースの Decimal型 や Numeric型、あるいは VARCHAR型 のカラムから値を取得すると、Pythonでは `str` 型として読み込まれます。そのため、計算を行う前に `float` または `int` に変換する必要があります。
### 修正方法
`order["price"]` を数値(例: `float` または `int`)にキャスト(型変換)してから計算するようにコードを修正してください。価格には小数が含まれる可能性があるため、通常は `float()` を使うのが安全です。
#### 修正コード例
```python
def get_user_orders(user_id):
orders = db.query("SELECT price, quantity FROM orders WHERE user_id = %s", user_id)
# priceをfloat(またはint)に変換して計算する
total = sum(float(order["price"]) * int(order["quantity"]) for order in orders)
return {"user_id": user_id, "total": total, "orders":…
応答時間 2.2秒出力 323 トークン
SQLクエリの最適化
以下のSQLクエリは500万行のテーブルに対して実行すると30秒以上かかります。最適化してください。 SELECT p.product_name, c.category_name, COUNT(o.order_id) as order_count, SUM(o.amount) as total_sales, AVG(r.rating) as avg_rating FROM products p LEFT JOIN…
このクエリが遅い最大の原因は、**「大量の結合(JOIN)を行った後に集計と絞り込みを行っていること」**、および**「適切なインデックスが存在しないためフルスキャンが発生していること」**です。
特に、`LEFT JOIN orders o ON ... AND o.created_at >= '2024-04-01'` と `WHERE o.created_at >= '2024-04-01'` が混在しているため、実質的に `LEFT JOIN` が `INNER JOIN` のように振る舞いながら、巨大な中間テーブルを作ってしまっています。
以下に改善策と最適化されたクエリを提示します。
---
### 主な改善点(なぜ遅いのか)
1. **結合順序とタイミングの悪さ**
- 500万行のテーブルに対して複数の `LEFT JOIN` を先に行い、その後に `GROUP BY` と `LIMIT 50` を行っているため、メモリとCPUを大量に消費しています。
- 特に `orders` や `order_details` は行数が多いため、結合前に期間やステータスで絞り込むべきです。
2. **インデックスの不足**
- 現状のインデックス(`products(id)`、`orders(order_id)`)だけでは、結合条件(`category_id`, `product_id`)やフィルタ条件(`is_active`, `status`, `created_at`)でフルスキャンが発生します。
3. **`LEFT JOIN` と `W…
応答時間 5.0秒出力 1224 トークン
Gemini Flash Liteを今すぐ試す
Gemini Flash LiteはFastMetalのAPIキー1つで利用できます。ブラウザですぐに試す、またはOpenAI SDKからそのまま呼び出せます。