SnippetBox
ビジョン:汎用人工知能(AGI)による制御系。あらゆるシステムと人間とをコネクトするAI。
ミッション:大規模言語モデル(LLM)によるマン・マシン・インターフェイス。あらゆる操作の自然言語化。
バリュー:LLM出力を安全に実行するための統合環境。
ビジョン:汎用人工知能(AGI)による制御系。あらゆるシステムと人間とをコネクトするAI。
ミッション:大規模言語モデル(LLM)によるマン・マシン・インターフェイス。あらゆる操作の自然言語化。
バリュー:LLM出力を安全に実行するための統合環境。
LLM生成コードによる制御を安全に実行するための環境スイート
SnippetBoxは、安全なプロンプト制御を提供する環境スイート製品です。
なぜスニペット(ロジックのみ含んだ部分的なコード)による制御が必要なのですか?
LLMの生成スニペットによるハードウェア制御はどのくらい一般的な手法ですか?
LLMの入出力データを監視して潜在的エラーを回避
SnippetBoxは、悪意のある指示プロンプトによる脱獄(ジェイルブレイク)を許しません。
なぜコンテナ化だけでは不十分なのですか?
ローカルとAPI経由の実行環境を統合したパッケージ
SnippetBoxの中核部分は、統合されたPythonパッケージとして提供されます。
導入対象となるシステムに合わせたカスタマイズが可能です。
導入に関するサポート、継続的なメンテナンス、システム開発のコンサルティングを通じて、お客様の要望や問題に迅速に対応します。
無料のフリーAPI版とサポート込みのエンタープライズ版をご用意しました
Updated Sat 19 Aug 2023
LLM生成コードの事前チェックを行うSnippetChecker-API
フリーAPI版で提供しているのは、SnippetCheckerの一部分のみです。
制御スニペットのタイプを限定することで、限定的ながらも最低限の機能を持つ制御スニペット実行用サンドボックスを構築できます。
フリーAPI版はPythonパッケージとして公開しています。
or$
pip
install
snippetchecker-api
商用非商用問わずに自由に利用できます。サービスポリシーを参照してください。$
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)
最低限の内容のみ含む名前空間を用意し、事前のコードチェックを行うと、ある程度安全に生成スニペットを実行出来ます。
ただし、外部に対して非破壊的なグローバル関数・パッケージのみ使用を許可する必要があります。
また、ループやリソースの制御は出来ないので、メモリやCPUの食い潰しには対応できません。
悪意のあるコードに耐性のある、完全なサンドボックスではないので、安全性が重要な場合はエンタープライズ版をご利用ください。
プロンプト入力で監視カメラを制御してみよう(AIテック&実験サイト)
JailbreakFinder、SnippetChecker、SnippetRunnerの組み合わせで必要な機能を実現します
Mon 16 Oct 2023
エンタープライズ版では、JailbreakFinder、SnippetChecker、SnippetRunnerを個別に提供可能です。
入力が想定されるプロンプトの特殊性に対応するため、JailbreakFinderは個別のカスタマイズと学習が必要です。
開発対象物の機能と想定されるプロンプト、出力スニペットの正常判定範囲をヒアリングの上、専用のプロンプト判定モデルを作成し、APIとして提供します。
SnippetCheckerは、フリーAPI版で提供している機能をローカルで実装したPythonパッケージを提供可能です。
機能一覧:
ローカル版の機能は、フリーAPI版と同じです。
ドキュメントを参照ください。
Pythonコード実行を起動するPythonパッケージと、実際にコード実行を行うコンテナを提供可能です。
概要:
外部へ影響を及ぼさないコンテナ/TCPサーバー上でPythonコードを実行する、リモートインタプリタです。
単にPythonコードをリモートで実行するだけではなく、コード実行をステップ・バイ・ステップで監視しつつ、その動作をリアルタイムに制御しながら、安全かつ高度な制御下でのLLM生成コードの実行を行います。
機能一覧:
独自のプロンプトデザイン、制御系シミュレーション、AIコンテナ開発をサポート
Mon 21 Aug 2023
カスタム開発・AI開発コンサルティングは随時受付しております。
詳しくはお問い合わせください。