AI商談評価システム（文字起こしから営業力を数値化）

# はじめに📝
こんにちわ、バンコクで１週間風邪を引いた後に、食あたりでゲボ吐いて高熱出してた、ノベルワークスのまとっち（[@matoi_thai](https://x.com/matoi_thai)）です。

ほぼ非エンジニアの僕が、生成AIにひたすら教えてもらって、kintoneで商談文字起こしをAIが自動で評価してくれるシステムを作ったので、記事として残しておきます。

## こんな人に見てほしい👀
- 営業の品質を数値化して改善したい人
- AIを活用した業務改善に興味がある人

# 今回やったこと⚙️
商談の文字起こしデータをkintoneに入れると、Gemini AIが営業パフォーマンスを項目で評価して、改善点まで教えてくれるシステムです。

1. **kintoneに商談文字起こしを入力** → レコードとして新規登録する
2. **AIによる評価実行** → ワンクリックでGemini AIが分析する
3. **結果を自動反映** → 6つの⭐評価・5つの✅評価・具体的な改善点を表示する

https://x.com/matoi_thai/status/1933916945918906814

# システム構成🏗️
下記の3層構成で動作します。
- ① kintone（フロントエンド）
- ② Google Cloud Run（APIサーバー）
- ③ Gemini AI（評価エンジン）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3713212/662b3438-90a2-4660-a178-4865f8ec5531.png)

## ① kintone（フロントエンド）
**役割**: ユーザーインターフェースと評価結果の表示
**技術**: JavaScript、Kintone UI Component、SweetAlert2
- kintoneアプリに「文字起こし」フィールド（文字列複数行）を作成
- 評価結果用フィールド（6つの⭐評価・5つの✅評価・具体的な改善点）を作成
- 「AIによる評価を実行」ボタンを配置し、ボタン押下で処理開始
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3713212/fb3d3e16-2fdc-49c5-ae3f-e048e7956cb7.png)

:::note info
**👇データ処理フロー概要（一部抜粋）**
```javascript
// ①現在のレコードから文字起こしデータを取得
const currentRecord = kintone.app.record.get().record;
const transcript = currentRecord['文字起こし'].value;

// ②外部APIにPOSTリクエスト送信
const apiUrl = 'https://gemini-api-XXXXXXXXXXXX.asia-northeast1.run.app/';
const response = await fetch(apiUrl, {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({ prompt: transcript })
});

// ③評価結果をkintoneレコードに反映
const body = {
    app: kintone.app.getId(),
    id: kintone.app.record.getId(),
    record: recordToUpdate
};
await kintone.api(kintone.api.url('/k/v1/record.json', true), 'PUT', body);
```
:::


## ② Google Cloud Run（APIサーバー・バックエンド）
**役割**: kintoneとGemini AIの仲介、プロンプト管理
**技術**: Python Flask、generativeai、flask-cors
- PythonのFlask APIをコンテナ化
- 環境変数`GEMINI_API_KEY`でAPIキーを設定
- kintoneからのCORSリクエストを許可
:::note info
**👇API処理フロー概要（一部抜粋）**
```python
from flask import Flask, request, jsonify
from flask_cors import CORS
import os, json
import google.generativeai as genai

# ①Flask アプリ初期化 & CORS設定
app = Flask(__name__)
CORS(app)

# ②POSTリクエスト受信・バリデーション
req = request.get_json()
transcript_text = req.get("prompt")

# ③詳細なプロンプトテンプレート適用
PROMPT_TEMPLATE = "（ここにプロンプト入れる）"
full_prompt = PROMPT_TEMPLATE.format(transcript=transcript_text)

# ④Gemini API呼び出し（API キーは環境変数で設定）
genai.configure(api_key=os.getenv("GEMINI_API_KEY"))
model = genai.GenerativeModel("gemini-2.5-pro")
response = model.generate_content(full_prompt)

# ⑤レスポンス変換
cleaned_text = response.text.strip().replace("```json", "").replace("```", "")
result_json = json.loads(cleaned_text)

# ⑥構造化データとしてkintoneに返却
return jsonify(result_json)
```
:::

## ③ Gemini AI（評価エンジン）
**役割**: 商談内容の自然言語解析と営業力の評価
**モデル**: Gemini 2.5 Pro（最新の大規模言語モデル）
- Google AI Studioで新しいAPIキーを作成
- AIには明確な役割（厳しい営業コンサルタント）
- 商談の評価基準を具体的に定義する

:::note info

**👇入力するプロンプト概要**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3713212/aab542ff-4bea-4e84-b60e-802e4ad5e9bb.png)
:::

# おわりに💬
僕は「kintoneに入れた営業商談の文字起こしをAIで評価するシステムを作りたい」ということだけを生成AIに伝えただけです。もちろん、途中で細々とした追加指示を出してますが、商談評価項目・システム構成・詳細コーディング・Qiita記事作成まで全てやってくれました。