[ChatStream] Rakuten/RakutenAI-7B-chat用の ChatPrompt

[ChatStream] Rakuten/RakutenAI-7B-chat用の ChatPrompt

昨日発表された Rakuten/RakutenAI-7B-chat 用の ChatPrompt をご紹介します

from chatstream import AbstractChatPrompt

SYSTEM_PROMPT = """\
A chat between a curious user and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the user's questions. \
"""


class ChatPromptRakutenMistral(AbstractChatPrompt):

    def __init__(self):
        super().__init__()  # Call the initialization of the base class
        self.set_system(f"{SYSTEM_PROMPT}")
        self.set_requester("USER")
        self.set_responder("ASSISTANT")

    def get_stop_strs(self):
        if not self.chat_mode:
            return None
        return []

    def get_replacement_when_input(self):
        return None

    def get_replacement_when_output(self):  # replace when response_text gotten
        return None

    def create_prompt(self, opts={}):
        if self.chat_mode == False:
            return self.get_requester_last_msg()

        # Chat Mode == True の場合のプロンプトを構築する
        ret = self.system

        for chat_content in self.get_contents(opts):

            chat_content_role = chat_content.get_role()
            chat_content_role_type = chat_content.get_role_type()
            chat_content_message = chat_content.get_message()

            if chat_content_role:

                if chat_content_message:

                    merged_message = chat_content_role + ": " + chat_content_message + " "
                else:
                    merged_message = chat_content_role + ":"

                ret += merged_message

        return ret

    async def build_initial_prompt(self, chat_prompt):
        # 初期プロンプトは実装しない
        pass


Read more

ゼロから作るコーディングエージェント【第1回】「最後までやりきる」が難しい理由と、ターンを回す係と止める係を分ける設計

ゼロから作るコーディングエージェント【第1回】「最後までやりきる」が難しい理由と、ターンを回す係と止める係を分ける設計

コーディングエージェントを自作すると、いちばん難しいのはループを回すことではなく「いつ止めるか」を決めることでした。あるランでは、300ターン中234ターンでツールが1度も呼ばれていませんでした。この数字を出発点に、ターンを回す係と止めてよいか決める係を分け、押し戻しの送り方を直すまでを書きます。

By Qualiteg プロダクト開発部
【AI×CAD 第4回】3Dデータを渡さずにAIに設計をレビューさせる。幾何解析を先に済ませ、LLMには構造化した解析結果だけを渡す

【AI×CAD 第4回】3Dデータを渡さずにAIに設計をレビューさせる。幾何解析を先に済ませ、LLMには構造化した解析結果だけを渡す

機密の3DデータをクラウドAIに上げなくても、設計のAIレビューはできます。CADASのAI所見は、幾何解析エンジンが歯数・連動・穴・フィレットを先に解析し、LLMにはその構造化データ(1KBほど)だけを渡します。実際の所見・送信したJSON・悪用対策まで、実物で解説します。

By Qualiteg コンサルティング
Raspberry Pi Zero Wで外出先からサーボを動かす。ヘッドレスセットアップからハードウェアPWM、WireCanalでの公開まで

Raspberry Pi Zero Wで外出先からサーボを動かす。ヘッドレスセットアップからハードウェアPWM、WireCanalでの公開まで

2017年の初代Raspberry Pi Zero Wにサーボをつなぎ、Windows PCだけでヘッドレスセットアップして、インターネット越しにcurl一発でサーボを動かすまでの全手順です。ソフトウェアPWMで震えるサーボをハードウェアPWMで止め、その差をHTTPのAPIで切り替えられるようにして、WireCanalの無料プランでポート開放なしに公開しました。書き込み184秒・起動5分・切替1秒など、すべて実測値つきです。

By Join us, Michele on Qualiteg's adventure to innovation
【AI×CAD 第3回】「この形、抜けません」を設計中に知る。金型DFM(抜き勾配・アンダーカット・肉厚)をブラウザで自動チェック

【AI×CAD 第3回】「この形、抜けません」を設計中に知る。金型DFM(抜き勾配・アンダーカット・肉厚)をブラウザで自動チェック

抜き勾配・アンダーカット・局所的な肉厚の要注意箇所は、型開き方向を決めれば形状から機械的に一次チェックできます。わざと不良を仕込んだ樹脂ケースでCADASの金型DFMを実走し、要勾配11.8%・アンダーカット0.2%(横穴のみ)・肉厚中央値2.00mmが出るまでと、その判定の仕組みを解説します。

By Qualiteg コンサルティング