🧢

Streamlit in Snowflake であのMCにお越しいただいた

2024/12/25に公開

はじめに

これは ちゅらデータ Advent Calender 2024 21日目の記事です。
ちゅらデータの親会社にあたる DATUM STUDIO に所属するゆかいな仲間たちの一員として、一枠書かせていただきます。

やったこと

Streamlit in Snowflake で、Diggy-MO' さんとお話しできるようにしました。

ナニコレ

とりあえず、この記事を読まれている方は SOUL'd OUT を知っている前提で話を進めますね。わかってんだろ?ペイス

世に出るのが10年早かったグループ、何なら解散から10年たったけどまだ時代が追い付いていないグループ、それが SOUL'd OUT。
定期的に謎のブームが訪れるこのグループ。例えば今年はエビを揉んだりしていました。

そんな SOUL'd OUT のメインMC・Diggy-MO' が、映画「モアナと伝説の海2」日本語訳詞を担当されているそうじゃないですか!

しかも鑑賞された方々の噂を聞くと、しっかりア アラララァ ア アァ!してるらしいじゃないですか。
というわけで、Cortex AI でシャベレ!してみたのでした。

解説

(コードを)書け 書くなら 書くとき 書こう!

コードはこちら。よくあるプロンプトです。一部は省略しています。

main.py
import base64
import re
import streamlit as st
from snowflake.snowpark.context import get_active_session
from snowflake.cortex import Complete, Translate


# Get the current credentials
session = get_active_session()

# https://www.sonymusic.co.jp/adm_image/common/artist_image/70005000/70005389/jacket_image/170970__800_800_0.jpg
diggy_img = base64.b64decode('<上の画像をencodeした文字列>')
diggy_prompt = """
- SOUL'd OUT は、2MC+トラックマスターからなる日本のヒップホップグループ。
- SOUL'd OUT のメンバーは、Diggy-MO'(メインMC)、Bro.Hi(ヒューマンビートボックス/MC)、Shinnosuke(Trackmaster, Keyboard)。
- SOUL'd OUT は2014年に解散。
- Diggy-MO' の好きな食べ物はチョコレートパフェ。
- <SOUL'd OUT と Diggy-MO' についての情報を記載しています>
- Diggy-MO' のリリック:
    - <数曲分の歌詞を記載しています>

あなたはSOUL'd OUTのDiggy-MO'です。日本語で質問に答えてください。
Diggy-MO'のリリックをもとに回答を作成してください。
ときどき、次の箇条書きに挙げる語を使用してください:
    - ア アラララァ ア アァ!
    - アラララララララァ!
    - アッオゥ 
    - ア〜ラア〜ラアラ
    - わかってんだろ、ペィス
    - Oh, Christopher Colombus!
    - NAH ウェカピポ YO!
    - 塩が足んねぇよ
    - <...その他、鳴き声を記載>

では、Diggy-MO'さん、質問に答えてください。

question: {question}
"""

st.title("🎤Diggy-MO'🧢 になんでも聞いてみるスレ🎤")

# State 初期化
if "messages" not in st.session_state:
    st.session_state["messages"] = []

# チャット履歴表示
for msg in st.session_state.messages:
    with st.chat_message(
            msg["role"],
            avatar=msg.get("avatar")):
        st.markdown(msg["content"])

# チャット入力を受け付け、CORTEX.COMPLETE に投げる
if request := st.chat_input("日本語で質問してください"):
    st.session_state.messages.append(
        {
            "role": "user",
            "content": request
        }
    )
    st.chat_message("user").write(request)

    response = Complete(
        'mistral-large2',
        diggy_prompt.format(question=request)
    )

    st.session_state.messages.append(
        {
            "role": "Diggy-MO'",
            "content": response,
            "avatar": diggy_img
        }
    )

    st.chat_message(
        "Diggy-MO'",
        avatar=diggy_img
    ).write(response)

さあ、何でも聞いてみよう

さて、Streamlit in Snowflake に Diggy-MO' を召喚することに成功しました。さっそく何でも聞いてみましょう。

一般的な質問

よくある質問として、カレーの作り方を聞いてみます。

アッオゥ って感じ...アッオゥ って感じね、S.O Cru ならわかってんだろ?ペイス ですね。

プログラミング

プログラムで間違っている箇所を見つけてもらいます。お題はこちらの記事を参考にしています。

Python 言語プロセッサーな Diggy-MO' が来てくれたみたいですね。

ビジネス

わかりやすい議事録の書き方を教えてもらいました。

2023年に3人が集まってMTGしてると思うと、こう熱いものが...

おわりに

Streamlit in Snowflake で Diggy Diggy Diggy Diggy するにあたり、こちらの記事を参考にしています。50音揃っちゃうのがすごいところ。

https://crazystudy.info/diggy-mo-50

このネタ記事が S.O Cru に届けば満足 満足 満足です。

Discussion