ホーム ソリューション テクノロジー 最新情報 オリジナルAI

SnippetBox

ビジョン:汎用人工知能(AGI)による制御系。あらゆるシステムと人間とをコネクトするAI。

ミッション:大規模言語モデル(LLM)によるマン・マシン・インターフェイス。あらゆる操作の自然言語化。

バリュー:LLM出力を安全に実行するための統合環境。

What is SnippetBox?

LLM生成コードによる制御を安全に実行するための環境スイート

SnippetBoxは、安全なプロンプト制御を提供する環境スイート製品です。

  • LLMが生成可能なスニペットで制御ロジックを表現するためのプロンプトエンジニアリング
  • 安全なスニペット実行を行うための事前コードチェック・サンドボックス実行環境・リソース制御
  • スニペット実行の結果にフェイルセーフ機構を取り入れるための制御系シミュレーション環境

なぜスニペット(ロジックのみ含んだ部分的なコード)による制御が必要なのですか?

LLMの生成スニペットによるハードウェア制御はどのくらい一般的な手法ですか?



LLMの入出力データを監視して潜在的エラーを回避

SnippetBoxは、悪意のある指示プロンプトによる脱獄(ジェイルブレイク)を許しません。

  • ジェイルブレイクの可能性がある指示プロンプトを発見しフィルタリング
  • 指示プロンプトが生成するスニペットを常に監視し、不正なコードの実行を防止
  • プリエンプティブな実行スケジューリングを実現するインタプリタ実行環境

なぜコンテナ化だけでは不十分なのですか?



ローカルとAPI経由の実行環境を統合したパッケージ

SnippetBoxの中核部分は、統合されたPythonパッケージとして提供されます。

導入対象となるシステムに合わせたカスタマイズが可能です。

導入に関するサポート、継続的なメンテナンス、システム開発のコンサルティングを通じて、お客様の要望や問題に迅速に対応します。




プロダクト紹介

無料のフリーAPI版とサポート込みのエンタープライズ版をご用意しました

Updated Sat 19 Aug 2023

フリーAPI版

Start Use Now

エンタープライズ版

Contact
SnippetChecker-API
check_blue
check_blue
SnippetChecker-Local
check_blue
SnippetRunner
check_blue
JailbreakFinder
check_blue



フリーAPI版

LLM生成コードの事前チェックを行うSnippetChecker-API

フリーAPI版で提供しているのは、SnippetCheckerの一部分のみです。

制御スニペットのタイプを限定することで、限定的ながらも最低限の機能を持つ制御スニペット実行用サンドボックスを構築できます。

フリーAPI版はPythonパッケージとして公開しています。

$ pip install snippetchecker-api
or
$ pip install git+https://github.com/reiwa-ai/snippetchecker-api.git
商用非商用問わずに自由に利用できます。サービスポリシーを参照してください。

スニペットのチェック

スニペットが単一の代入文(ただし三項演算子は許可)であるか、チェックする。

>>> from snippetchecker.api import SnippetChecker, SnippetType, LoopType, LoopStructure
>>> c = SnippetChecker()

>>> assign_code = "new_enemy_hp = enemy_hp - my_attack"

>>> c.determine_snippet_type(assign_code) == SnippetType.LINE_ASSIGN
True

スニペット内のループの入れ子構造をチェックする。

>>> loop_code = """for day in range(31):
>>>     a = [p.strip() for p in camera.history(-day)]"""

>>> c.find_loop_in_snippet(loop_code)
[LoopStructure(loop=<LoopType.CONSTANT_LOOP: 2>, body=[<LoopType.GENERAL_COMPREHENSION: 5>])]

スニペットの実行前チェックを行う。

>>> short_code = """for angle in range(180):
>>>     camera.move(angle)
>>>     time.sleep(60/180)"""

>>> c.check_formal_snippet(short_code,
>>>                        safe_function=['range', 'camera.move', 'time.sleep'],
>>>                        safe_objects=['camera'],
>>>                        safe_modules=['time'])
True
詳しくはドキュメントを参照してください。

サポート関数

最小限のインスタンスのみ含む名前空間を作成

「range」ビルトイン関数と「time」パッケージのみを含む__builtins__を作成。

>>> from snippetchecker.support import make_cleaned_builtins
>>> global_builtins = make_cleaned_builtins(allow_global_functions=['range'],
>>>                                         allow_import_modules=['time'])

クリーニング済み__builtins__のみ含んだグローバル名前空間と、「camera」インスタンスのみ含んだローカル名前空間を指定してexec()を呼び出す。

>>> local_variables = {'camera':camera}

>>> exec(generated_code_noimport,
>>>       {'__builtins__':global_builtins},
>>>       local_variables)

Hint:

最低限の内容のみ含む名前空間を用意し、事前のコードチェックを行うと、ある程度安全に生成スニペットを実行出来ます。
ただし、外部に対して非破壊的なグローバル関数・パッケージのみ使用を許可する必要があります。
また、ループやリソースの制御は出来ないので、メモリやCPUの食い潰しには対応できません。
悪意のあるコードに耐性のある、完全なサンドボックスではないので、安全性が重要な場合はエンタープライズ版をご利用ください。


サンプル

プロンプト入力で監視カメラを制御してみよう(AIテック&実験サイト)



エンタープライズ版

JailbreakFinder、SnippetChecker、SnippetRunnerの組み合わせで必要な機能を実現します

Mon 16 Oct 2023

エンタープライズ版では、JailbreakFinder、SnippetChecker、SnippetRunnerを個別に提供可能です。



JailbreakFinder

入力が想定されるプロンプトの特殊性に対応するため、JailbreakFinderは個別のカスタマイズと学習が必要です。

開発対象物の機能と想定されるプロンプト、出力スニペットの正常判定範囲をヒアリングの上、専用のプロンプト判定モデルを作成し、APIとして提供します。


SnippetChecker

SnippetCheckerは、フリーAPI版で提供している機能をローカルで実装したPythonパッケージを提供可能です。

機能一覧:

ローカル版の機能は、フリーAPI版と同じです。

ドキュメントを参照ください。


SnippetRunner

Pythonコード実行を起動するPythonパッケージと、実際にコード実行を行うコンテナを提供可能です。

概要:

外部へ影響を及ぼさないコンテナ/TCPサーバー上でPythonコードを実行する、リモートインタプリタです。

単にPythonコードをリモートで実行するだけではなく、コード実行をステップ・バイ・ステップで監視しつつ、その動作をリアルタイムに制御しながら、安全かつ高度な制御下でのLLM生成コードの実行を行います。

機能一覧:

  • コード実行元(クライアント)とのPythonオブジェクトのリアルタイム同期
  • リモート実行中コード内での関数呼び出しをクライアントへリダイレクト
  • コード内に含まれるかもしれないループ構造のチェックと実行周波数/最大実行回数などの制御
  • 利用/インポートできるパッケージや機能を制限する、コンテナ内サンドボックス環境
  • 実行時エラーのカスタムハンドリング。エラー強制無視モードやループ実行継続優先モード
  • 任意のタイミングで実行される時割り込み処理をリモート実行コードに挿入


お問い合わせ:

お名前

メールアドレス

役職(オプション)

想定している使用シチュエーション(オプション)





カスタム開発

独自のプロンプトデザイン、制御系シミュレーション、AIコンテナ開発をサポート



Mon 21 Aug 2023

カスタム開発・AI開発コンサルティングは随時受付しております。

詳しくはお問い合わせください。