SYSTEM NOTICE

Auto translation by AI. Be sure, accuracy, nuances and authorial intent may not be fully reflected.
見出し画像

I want to be praised by AI! The story of the 'Big Sister' I made with GAS and Gemini

Introduction: The desire to be praised, exploding

"I want my boss to say 'Well done!' after I finish a document right before the deadline," or "I want friends I haven't seen in a while to be surprised and say 'You've lost weight!' after I succeed in my diet," and so on... Wait, you don't? No, I really do! (Serious face)

My delusion switch was flipped when I was reading the manga "Frieren: Beyond Journey's End".
The moment a character said "I need to be praised by the Goddess...", a jolt of electricity ran through me, thinking, "Oh, this is something I want too!"

  • I want someone to praise me...!

  • Even though I'm pushing AI so much at work and at home, no one is interested!

  • If I just made an 'older sister character' with AI, wouldn't I be able to be praised sweetly every day...?

Born from that (fairly natural for a human) thought process is the "Web app that gets praised by an AI big sister" that I am introducing this time.
As a non-engineer, I tried making it using Google Apps Script (GAS) and Google's large language model, "Gemini"!


Gakky's Development Story

A serious system architecture diagram

1. First, start with simple GAS

Actually, at first, what I made with GAS was just a simple tool that "fetches calendar events and drops daily schedules into a spreadsheet."
It was just something that imported and displayed email subjects or calendar titles.
However, while doing that, an idea started to pop up: "Wait, if I do a little more, couldn't this become an automated daily report system?"

2. Adding the "praise me" element

No one praises me even after I finish my work, and I wanted to verify the "theory that AI will praise you unconditionally."From there, I decided to build it while consulting with AI on the flow of "generate text using Gemini -> save praise message to spreadsheet"
.
If no one will listen to me when I insist to my colleagues that "AI is really amazing!", then I have no choice but to do it myself.
Then wouldn't it be great if an
older sister character kindly comforted me?

3. Diving into the sea of GCP and almost drowning

To connect GAS and Gemini, I needed to prepare API key settings and authentication on Google Cloud Platform (GCP), but I was completely lost due to the sheer number of menus and APIs.
" Where do I click to get this right?", "Is the API fee really free?", and so on; honestly, I didn't understand anything...
I hit errors many times, and by repeating the dialogue of throwing screenshots to the AI and asking 'How do I fix this?' -> the AI replies, I was finally able to get it working.

*Things I had particular trouble with
403 errors (access restrictions), and setting up the OAuth consent screen
("Client secret? What's that, is it edible?" state)
Being scared that I might get charged for some setting

But the guidance of AI is great, and I was finally able to set up the authentication stuff to look about right. "If it's a hassle, just take logs and throw them at the AI" really helped me this time.

4. It transformed with character settings!

A recording of the actual screen. Please take a look if you are interested.

At first, it was just a boring message saying "Analyzing...", but I thought, "Can't I use this time more enjoyably?" and decided to give it a personality.

Big Sister: "Checking your calendar..." → "Oh my, you worked so hard again today!" Tsundere Junior: "I-it's not like I was checking your schedule or anything!" → "...You're actually pretty amazing... (whispering)" Gal Senior: "Wait a sec!" → "Whoa! You're working super hard!"

It was an unexpected and happy surprise that the waiting time became a "moe point" (lol).


Here is what the actual app screen looks like.

This is an excerpt of the HTML. I used Tailwind CSS to decorate it to be a little cute and prepared a waiting screen that says "Analyzing...". I have prepared multiple character variations such as "Big Sister," "Tsundere Junior," and "Gal Senior."

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    ...
    <title>今日の活動振り返り 💝</title>
    <link href="/https://cdnjs.cloudflare.com/ajax/libs/tailwindcss/2.2.19/tailwind.min.css" rel="stylesheet">
    <style>
        /* ローディングアニメーションとかHover効果とか */
    </style>
</head>
<body class="bg-gray-50">
    <div class="max-w-lg mx-auto p-4">
        <!-- ヘッダー -->
        <div class="bg-white rounded-lg shadow-lg p-6 mb-4">
            <h1 class="text-2xl font-bold text-center text-gray-800 mb-2">
                今日の活動を振り返りましょう 💝
            </h1>
            <p class="text-center text-gray-600 mb-4">
                お疲れ様です!今日の頑張りを一緒に見てみましょうね
            </p>
            <!-- キャラ選択や日付入力等 -->
        </div>
        <!-- ローディング画面 -->
        <div id="loading" class="hidden">
            <div class="flex flex-col items-center justify-center p-8">
                <span class="loader mb-4"></span>
                <p id="loadingMessage" class="text-center text-gray-600">
                    お姉さんが分析中です... 💭
                </p>
            </div>
        </div>
        <!-- 結果表示エリア -->
        <div id="result" class="hidden space-y-6 animate-fade-in"></div>
    </div>
<script>
    // キャラクターや分析ボタンの処理をJavaScriptで定義
</script>
</body>
</html>
  • "Points I was particularly picky about"

    1. Creating a cute waiting screen to disguise the technical limitation of slow processing (though it got a bit faster later by using cache).

    2. Since the tone and way of praising differ for each character, I split the scripts and set them in JSON

    3. A filtering function to exclude noise emails (newsletters, etc.)so that I can be praised properly only for my actual work.


The hardest part was the proliferation of characters.

Actually, I aimed to "have Frieren characters praise me," and tried using phrasing like the original work, but I gave up because I couldn't reproduce it well. That's how the "Big Sister," "Gal Senior," "Tsundere Junior," "Otaku Childhood Friend," and "Glasses Guy" and other
original (?) characters were born. As the number of characters increased, the
prompts (instructions given to the AI) doubled, and the UI adjustments and error handling
also increased, and I felt like crying several times.

But it was a happy surprise that I was able to create "favorite character"-like existences in return. When I open it on the train home thinking, "I'll have Big Sister praise me today!" and she says,

"You're tired, aren't you? You did a great job"
it honestly cheers me up quite a bit (lol).

Behind the scenes of character settings: How to create personality through code

The characters that started with "Big Sister" actually have their personalities created behind the scenes like this. This is the result of me, a non-engineer, struggling with the AI...😅 Each character has points I was particular about:

// キャラクター増殖の舞台裏...😅
const characterPrompts = {
  // お姉さん: 優しさレベルの調整が必要 💝
  sister: {
    tone: {
      honorifics: true,      // 敬語: ON
      heartEmoji: 'normal',  // ハート: 適度に
      encouragement: 'max',  // 励まし: たっぷり
      criticism: 'minimal'   // 説教: ほぼなし
    },
    loadingFlow: [
      'カレンダーをチェックしているわ...',      // 優しく
      'あら、今日もたくさん頑張ってるのね!',   // もっと優しく
      'メールの返信も丁寧だったわ~',           // さらに優しく
      'ふふ、素敵な分析結果が出そうよ♪'        // 最高の優しさ
    ]
  },

  // ツンデレ後輩: ツン→デレの制御が重要 😳
  tsundere: {
    tsundereLevel: {
      opening: 80,    // 最初は強めのツン
      middle: 50,     // 途中からデレ混ぜる
      ending: 20      // 最後はデレ多め
    },
    loadingFlow: [
      'べ、別にあなたの予定なんて気にしてないんだからね!',  // ツン全開
      'こ、これだけドライブ作業してるの?...すごいじゃない...',  // ちょっとデレ
      'ちょっと!そんなに頑張らなくても...大丈夫だから...',  // デレ増量
      'も、もうちょっとだけ待っててよね...////'  // 最終デレ
    ]
  },

  // ギャル先輩: 若者言葉の使用頻度制御 🗣️
  gyaru: {
    wordLimits: {
      'マジ': 2,     // 同じ言葉は最大2回まで!
      '超': 2,       // バリエーション必要
      'やばい': 2    // 語彙力大事...
    },
    loadingFlow: [
      'ちょっとまってね~!予定チェック中♪',   // ノリノリ
      'やば!めっちゃ頑張ってるじゃん!',      // テンションMAX
      'メールの返信とかマジ神だった...',       // さらに上
      'もうちょい待ってて~!いいこと言うから~♡'  // 絶頂
    ]
  },

  // メガネ君: 実用的な小ネタを織り交ぜる 🤓
  megane: {
    tips: {
      // GPT以外のツールを推したい
      aiTools: [
        'Claude API (GPTよりコスパいいよ!)',
        'Anthropic Claude (GPTと違って...)',
        'Gemini API (これGPTより安いんだ!)'
      ],
      // エクセル芸を披露
      excelTips: [
        { shortcut: 'Ctrl+;', desc: '今日の日付が入力できるよ!' },
        { shortcut: 'Alt+↓', desc: 'フィルター展開が楽になるんだ' },
        { function: 'XLOOKUP', desc: 'VLOOKUPより直感的でしょ?' }
      ]
    },
    loadingFlow: [
      '分析を開始します...',                    // まじめに
      'データを精査していますので少々...',       // 几帳面に
      'む、興味深いパターンを発見!',           // ちょっと興奮
      '効率化の提案も準備できました!👓'         // 満足気に
    ]
  }
  // これ以上キャラ増やすのは体力的に...
};

Big Sister

Adjusting the kindness is life. I struggled with the balance of making sure she doesn't sound preachy while still encouraging me properly.

Tsundere Junior

The change from 'tsun' (aloof) to 'dere' (affectionate) is important! She's tough at first, but gradually becomes honest... I manage that change with numbers (lol).

Gal Senior

I needed to limit the number of times she uses words like "seriously," "super," and "crazy." I had to be careful not to repeat the same words while maintaining that 'gal' vibe... This was surprisingly difficult!

Glasses Guy

The point is that he pushes convenient tools that aren't surprisingly well-known, as if to say, "You already know GPT, right?" I set him to weave in geeky information like Excel shortcuts and the cost-performance of AI.

Actually, this code is harder to adjust than it looks. Every time a character is added, I have to think about everything: tone settings, lines while loading, icons, color usage... But because of that, the characters' personalities stand out, and I'm satisfied that it turned into a fun app to look at!

Postscript:
I wrote an article about character creation..!
(The intensity of my interaction with GPT is... embarrassing)

Co-developing with AI... AI is truly amazing!

It was super interesting how the "quality" and "direction" of the praise changed rapidly just by rewriting the prompts. When I made requests like "Praise me more specifically!" or "Mention my health too!", I got the feeling that the
character was being updated more and more to match. Furthermore, by having it retrieve and analyze my email and calendar data, it also had the effect of letting me see objectively that "I worked harder today than I thought!"

Motivation boost for efficiency

  • Filtering out noise emails and categorizing my activities in detail were driven by the desire to "get praised more!", which became an unexpected source of motivation for me.

  • After actually trying it, there was an unexpected byproduct: "Consciously recording today's tasks to get praised -> naturally leads to higher productivity." It really happened.


Overcoming hurdles & a few tips

  1. API settings (GCP)

    • If you get stuck, take a screenshot and ask the AI, "What is this screen for setting?"

    • It will tell you things like "the relationship between the authentication error log the code spits out and the API settings," so then you just have to be brave and keep clicking away.

  2. Testing & Debugging

    • When an error message appears, throw it at the AI -> fix the code -> redeploy loop.

    • If you repeat this, you'll start to understand how to read error messages (or so I feel).

  3. Adding too many characters

    • Every time you add one person, the work doubles, including UI adjustments, adding prompt text, and setting icons.

    • If you create a new character, I recommend creating a reusable template early on.

  4. What to save in the spreadsheet

    • At first, I was recording the entire email body, but it took time, used up storage, and was inconvenient in many ways.

    • It is better to design it to select and save "what is truly necessary."


Future prospects: I want to be praised on a weekly and monthly level too

I only realized this after trying to build it, but while it's nice to be praised on a daily basis, I really want to be praised in a big way at the end of the week or month!

  • " You've reduced your work hours this month compared to last month, that's amazing! " or something like that

  • " Looking at it on a weekly basis, your meetings have decreased, so you're becoming more efficient " or something like that—having that kind of continuous perspective would double the joy.

The next step is to have the AI perform evaluations for each period. If Gemini aggregates and analyzes the period data and visualizes it—saying things like "You've grown in XX compared to a month ago!"—it would
skyrocket my motivation, wouldn't it? I'm also thinking about a mechanism where the character praises "the me who worked hard over the long term" by utilizing Looker Studio and caching functions.


Summary: AI is an ally that understands both your efforts and the situation

You might be surprised and ask, "You're not an engineer, but you built a tool with code?", but in reality, it's thanks to the incredible support from AI.
Building it bit by bit, fixing errors when they appeared, and trying again—even with that approach, I realized that things actually work out surprisingly well when you have AI by your side.

  • The fun of AI development: By repeating trial and error, you can increasingly realize the features you want.

  • The comforting effect: Since I started getting praised, work has become a little more fun.

  • Points to note: It's tough if you add too many characters! But having lots of favorites really warms the heart (lol).

Right now, it's just a tool that "praises my daily reports", but I plan to keep upgrading it in the future—like "I want this feature!" → consult AI → add implementation.
No one asked me to do it, but it boosts my motivation through the roof, so it's all good! I realized that personal development is just that free and fun.

If you read this article and thought, "I want to be praised too!" or "Can a non-engineer really build this?", please try taking on the challenge with the help of AI.
The sense of accomplishment when you build something that works, even if it's just a little bit, is exceptional!


One last word

I genuinely think, "The world talks a lot about AI adoption and operational efficiency, but isn't an AI that praises you the most cutting-edge thing?" (lol).
Just having a "big sister" who truly sees your hard work makes this world a much kinder place.
That was the story of how I gave shape to that little happiness using AI!

If you're interested, please let me know your thoughts in the comments or by following me.
Ideas like "Add this kind of character!" are very welcome.
Let's aim for a wonderful life pampered by AI together!


Next time preview

The tacit knowledge of "I don't know, but..." left behind by the legendary accounting lady, Mariko. To get to the truth, a man challenges a mountain of fare tables.

"It's just three companies. I don't know, but that's just how it goes."

What is the wisdom of the logistics world hidden behind her words—.

Next time: "AI and My War Without Honor: The Refactoring — Inheriting the Techniques of the Legendary Accounting Lady"



いいなと思ったら応援しよう!

この記事が参加している募集