幻想郷やOnebotv11に適した大型モデルのワンクリック版
初心者向け - ロボットへの簡単なアクセス: QQ を含む 6 つの主要なプラットフォームにロボットを接続するだけ
中級 - 1 つの API をドッキングするチュートリアル: 大規模なモデル API の視覚的な管理
中大規模モデル API構成例 - 国内大規模モデル
中大規模モデル API 構成例 - 国際章
すぐに使用可能 - Telegram への迅速な導入
始めましょう - Discord にすぐにデプロイします
準備完了 - Kook への迅速な導入
Simple-SillyTavern-Hunyuan
Simple-SillyTavern-ビーンバッグ
すべての Onebotv11 標準フレームワークをサポートし、http-api とリバース ws をサポートし、ストリーミングをサポートし、複数の設定ファイル (複数のプロンプト ワード) をサポートします。
超小型サイズ、組み込みの sqlite メンテナンス コンテキスト、プロキシをサポート、
ワンクリックで幻想郷フレームワークにドッキングするには、情報を受信するためのリバース http アドレスと、送信 API を呼び出すためのフォワード http アドレスを設定するだけです。
sqlite データベースに基づいてコンテキストを自動的に維持します。会話モードでは、reset コマンドを使用してリセットします。
システム、ロールカード、コンテキスト長を設定可能、
同時に、自動コンテキストを備えた openai オリジナルのフレーバー API を外部に提供します (クラシック 3 パラメーター、id、親 ID、メッセージ)
APIとして実行でき、ワンクリックでQQチャンネルロボットQQロボットオープンプラットフォームに接続することもできます。
gpt の sse タイプを変換したり、増分したり、新しい sse のみを送信したりできます
同時環境における SSE メモリ セキュリティは、複数のユーザーに対する同時双方向 SSE 送信の維持をサポートします。
テンセント・フンユアン
テンセント・ユアンチー
百度文新
アリ・トンイ
清華の知恵のスペクトル
バイトボルケーノ(お手玉)
OpenAI
グロQ
Rwkv ランナー
ワンAPI
これらのプラットフォームの API を統一 API 構造に変換し、コンテキストを提供し、SSE リターンをサポートします。
ymlに該当プラットフォームのトークンを設定し、AllApi=trueとすることで、同時に切り替え呼び出しを行うことができます。
幻想郷フレームワーク - QQオープンプラットフォーム
幻想郷フレームワーク - Discord
幻想郷フレームワーク-Kook
幻想郷フレームワーク - WeChatサブスクリプションアカウントパブリックアカウント
幻想郷フレームワーク-テレグラム
すべての Onebotv11 実装
開発者と llm アプリケーションの安全を可能な限り確保するための複数の完全なセキュリティ対策。
複数ラウンドのシミュレートされた QA を設定して、役割のプロンプト ワード、リセット応答、安全な単語の応答を強化することができ、第 1 レベルの安全対策をカスタマイズできます
ai-agent アプリケーションを形成するための複数の gsk-llm 相互接続をサポートします。たとえば、1 つの llm でプロンプト ワードを別の llm にソートする、プロンプト ワードを監査する、二次セキュリティ対策など
ベクトル セーフ ワード リスト (ベクトルの類似性に基づく機密傍受単語リスト) は、3 番目のセキュリティ対策であるテキスト置換の前に実行されます。
AhoCorasick アルゴリズムによって実装された非常に効率的なテキスト IN-Out 置換ルールは、多数の n キーワードを対応する新しいキーワードに置き換えることができます。セキュリティ対策の第 4 レベル。
結果はBaidu-Tencentを再度通過し、テキストレビューインターフェイス、セキュリティ対策の第5層を通過できます。
ログは完全に記録され、コマンド ライン パラメーター -test を使用して、test.txt からセキュリティ セルフテスト スクリプトを迅速に実行できます。
コマンド ライン -mlog は、現在保存されているすべてのログに対して QA フォーマットを実行し、毎日レビューして、実際のシナリオから新しいセキュリティ ルールを抽出し、セキュリティ対策の 6 番目のレベルを継続的に強化します。
言語フィルタリングにより、llm は指定された言語のみを受け入れ、繁体字中国語を簡体字中国語に自動的に変換し、セキュリティ ルールを適用し、独自の専門分野の第 7 レベルのセキュリティ対策を防御することができます。
プロンプトの単語の長さ制限、最も独創的な方法でセキュリティを制御、悪意のあるユーザーが長いプロンプト単語を作成するのを防止する、第 8 レベルのセキュリティ対策
これらの方法を通じて、可能な限り安全な llm 会話ロボットを作成します。
テキスト IN-OUT 二重層置換により、内部プロンプトワードを自分で動的に置換および変更することができ、より安全で強力です。
SQLite によって設計されたベクトル データ テーブル構造に基づいて、キャッシュを使用してキャッシュ ヒット率と精度をカスタマイズできます。
高効率、高パフォーマンス、高 QPS のシナリオに最適化された特殊なシナリオ アプリケーション。冗長な機能や命令はなく、デジタル ヒューマンを中心に完全に設計されています。
コマンドラインを使用してgensokyo-llm実行可能プログラムを実行します。
config.yml を構成して開始し、ポート port をリッスンして /conversation API を提供します。
gensokyo フレームワーク層と gensokyo-llm の http リクエストの間で、ベクター拡張、データベース拡張、ユーザー課題の動的変更を実装するためのミドルウェア開発をサポートします。
リバースWS接続をサポートし、複数のonebotv11 http-apiへの同時接続をサポートします。
このドキュメントでは、ユーザーが API インターフェイスを正しく使用および構成できるように、API インターフェイスの呼び出し方法と構成ファイルの形式について説明します。
このシステムのconversation
ポイントとgensokyo
エンドポイントは、クエリ パラメーター?prompt=xxx
による特定の構成の指定をサポートしています。
prompt
パラメーターを使用すると、ユーザーは実行可能ファイル (exe) のprompts
フォルダーにある構成 YAML ファイルを指定できます。このパラメータを使用して、API の動作を動的に調整し、コンテンツを返します。
プロンプト フォルダーには、バブルを生成するためのデフォルトのキーボード .yml が必要です。そのシステム プロンプト ワードは、JSON バブル ジェネレーターのプロンプト ルールに従う必要があります。
構成ファイルは次の YAML 形式に従う必要があります。ここでは、さまざまな役割のダイアログ コンテンツを定義する方法を示す構成ファイルの例が提供されています。
Prompt :
- role : " system "
content : " Welcome to the system. How can I assist you today? "
- role : " user "
content : " I need help with my account. "
- role : " assistant "
content : " I can help you with that. What seems to be the problem? "
- role : " user "
content : " aaaaaaaaaa! "
- role : " assistant "
content : " ooooooooo? "
settings :
# 以下是通用配置项 和config.yml相同
useSse : true
port : 46233
/gensokyo
エンドポイントシステムは、 /gensokyo
エンドポイントにリクエストを行うときに、追加のprompt
パラメーターとapi
パラメーターをサポートします。 api
パラメーターを使用すると、 /conversation_ernie
などの完全なエンドポイントを指定できます。この機能を有効にするには、構成でallapi
オプションを有効にする必要があります。
リクエストの例:
GET /gensokyo?prompt=example&api=conversation_ernie
サポートされているエンドポイントのリスト: (構成が必要: allApi: true)
http . HandleFunc ( "/conversation_gpt" , app . ChatHandlerChatgpt )
http . HandleFunc ( "/conversation_hunyuan" , app . ChatHandlerHunyuan )
http . HandleFunc ( "/conversation_ernie" , app . ChatHandlerErnie )
http . HandleFunc ( "/conversation_rwkv" , app . ChatHandlerRwkv )
http . HandleFunc ( "/conversation_tyqw" , app . ChatHandlerTyqw )
http . HandleFunc ( "/conversation_glm" , app . ChatHandlerGlm )
/conversation
エンドポイント/gensokyo
と同様に、 /conversation
エンドポイントは追加のprompt
パラメーターをサポートします。
リクエストの例:
GET /conversation?prompt=example
prompt
パラメータ分析指定されたprompt
パラメーターは、実行可能ディレクトリの/prompts
フォルダーにある対応する YAML ファイルを参照します (たとえば、 xxxx.yml
、 xxxx
はprompt
パラメーターの値)。
プロンプト付きのymlファイルを大量に記述することで、キャラクターカードを切り替えることができ、同じキャラクターでもストーリーやシーンを切り替えることができます。
YAML ファイルの構成形式については、 「YAML 構成ファイル形式」セクションを参照してください。以下にリストされている構成項目は、リクエストでの動的なオーバーライドをサポートしています。
各パラメータは構成範囲を実装します
欠落があり、構成範囲をサポートする必要がある場合は、問題を送信してください。
すべてのブール値は、構成ファイルでカバーされる yml で指定する必要があります。指定しない場合、値は false とみなされます。
動的構成オーバーライドは、私が独自に考案した機能です。この機能を使用すると、たとえば、ミドルウェアでプロンプト=a を渡し、Lotus がそれ自体を呼び出すように指定し、次の .yml を指定することができます。 Lotus アドレスのプロンプト パラメータは b で、b は c を指定し、c は d を指定します。
このプロジェクトでは、プロンプトワード制御フローと制御可能なコンテキスト構築方法を実装しています。このプロジェクトで実装されている複数の設定ファイルに基づいて、設定ファイル間の条件付きジャンプと切り替えを実現できます。
複数のプロンプトワードを条件に応じて順番に、任意に循環させることができ、テキストラブゲーム、アドベンチャーゲーム、非連続多分岐ストーリーなどのストリーミングプロンプトシステムを実現します。
- [x] promptMarks :
- BranchName : "去逛街路上"
Keywords : ["坐车", "走路", "触发"]
- BranchName : "在家准备"
Keywords : ["等一下", "慢慢", "准备"]
- [x] enhancedQA : true
- [x] promptChoicesQ :
- Round : 1
ReplaceText : "回家吧"
Keywords : ["我累了", "不想去了"]
- Round : 2
ReplaceText : "我们打车去"
Keywords : ["快点去", "想去", "早点"]
- Round : 3
ReplaceText : "我们走着去"
Keywords : ["不着急", "等下"]
- Round : 1
ReplaceText : "放松一下"
Keywords : [] # 相当于 enhancedChoices = false
- [x] promptChoicesA : 同上。
- [x] promptCoverQ : 只有Q没有A,格式同上,Choices是附加,cover是覆盖。
- [x] promptCoverA : # 同上
- [x] switchOnQ :
- round : 1
switch : ["故事退出分支", "下一个分支"]
keywords : ["不想", "累了", "想", "不累"]
- [x] switchOnA :
- round : 1
switch : ["晚上分支"]
keywords : ["时间不早了"]
- [x] exitOnQ :
- round : 1
keywords : ["退出", "忘了吧", "重置", "无聊"]
- [x] exitOnA :
- round : 1
keywords : ["退出", "我是一个AI", "我是一个人工", "我是一个基于"]
- [x] envType : 0 # 0=不使用场景描述, 1=在本轮llm回复前发送场景描述, 2=在本轮llm回复后发送场景描述, 场景描述支持[image:xxx][pic:xxx][图片:xxx][背景:xxx]标签, xxx为相对或绝对路径, 需在exe运行目录下
- [x] envPics : [] # 现阶段ai速度太慢,人工指定,数组代表多个,每个数组成员以1: 2: 开始代表对应第几轮.
- [x] envContents : [] # 如果要跳过某个轮次,直接指定文字是2: 图片也是2: 代表本轮文图是空的.
- [x] promptChanceQ :
- probability : 50
text : "让我们休息一下"
- probability : 30
text : "继续前进"
- probability : 70
text : "停下来看看周围"
- probability : 10
text : "尝试一些新东西"
上記のパラメーターはすべて、マルチ構成ファイルの設定セクションにあります。各シーンのプロンプト ワードの長さと各シーンの長さのプロンプトマーク長を決定して、プロットの粒度を制御できます。
ストーリーモードの起動方法 1、ミドルウェア制御、/gensokyo ポートを単独で呼び出し、別のプロンプト パラメータをアタッチし、手動で切断する
ob11 ロボット フレームワークの http API アドレスを gsk-llm に設定します。ob11 プラグイン アプリケーションはメッセージの送信を担当しません。制御ミドルウェアとして、開発者は次のことを行うことができます。状態そのものをコントロールします。
2 番目のストーリー モードのトリガー方法は、デフォルト設定ファイル config.yml で switchOnQ および switchOnA を設定することにより、キーワードに基づいてブランチを自動的に切り替えることです。
ストーリーを進めるためのプロンプト パラメーター内の設定ファイルの機能と組み合わせることで、プロンプトの単語に焦点を当てた基本的な AI ストーリーラインを実現できます。また、各プロンプト.yml に対応する -keyboard.yml を設計することも必要です。泡を発生させます。
promptMarks のキーワードは [] です。これは、promptMarksLength を押してプロンプト ワード ファイルを切り替えることを意味します。promptMarksLength は、このプロンプト ワード ファイルによって維持されるコンテキストの長さを表します。
プロンプトマーク長が 0 未満の場合、後続のブランチはプロンプトマークから読み取られ、プロンプトマークタイプが 1 の場合、そこからランダムに切り替えられます。
1= 条件に基づいてトリガーされ、promptMarksLength に達したときにもトリガーされます。
構成の詳細については、プロセス control-promptmarks.md を参照してください。
この分岐は、ユーザーとモデルがマークを話すときにトリガーされます (llm が条件に従ってそれを話すことができるように、プロンプトの単語を自分で書く必要があります)。
現在のストーリーフラグメントのシステムプロンプトワードとQAを使用して、合意されたスイッチングワードを出力するようにAIをガイドできます。これにより、ターゲットブランチごとに複数のトリガーワードの設計を実現し、大規模なモデルで展開を決定できるようになります。物語の方向性は自分で決める。
EnhancedQA が false の場合、構成ファイル内の事前定義された QA は、llm のメモリ内に存在するユーザー QA の先頭に追加され (全体的なダイアログの方向に影響を与えることなく)、弱い影響を与えます。
EnhancedQA が true の場合、構成ファイル内の事前定義された QA の位置を上から下にユーザーの現在の会話の前に移動しようとしましたが、その効果は理想的ではありませんでした。
現時点では、現在のユーザーの過去の QA と混合および統合され、ユーザーの入力をある程度ガイドし、ストーリー プロセスの方向性に影響を与えます。
「構成制御フロー」パラメータが導入されました。これは、ai-agent よりも柔軟性に劣りますが、プロットの制御性が高く、生成速度が低く、コストが低い方法です。
プロンプト選択Q およびプロンプト選択A ドキュメント: プロセス制御-プロンプト選択Q プロセス制御-プロンプトカバーQ プロセス制御-プロンプトチャンスQ
switchOnQ は、Q に一致するテキストが見つかった場合に現在のブランチを切り替えることを意味します。switchOnA についても同様であり、その設定方法は promptChoices と同じです。
プロセス制御スイッチonQA
exitOnQ は、指定されたキーワードが検出されたときに現在のブランチが終了することを意味します。 プロセス制御-exitonQA
promptMarks、switchOnQ、switchOnA は機能的にはすべて同じで、ラウンドや QA に関係なく、キーワードに基づいてブランチにジャンプします。switchOnQ と switchOnA はより具体的であり、Q と A を区別し、ラウンドを区別します。ジャンプ。
切り替える必要のない固定ブランチがある場合は、ymlのpromptMarksLengthを99999に設定してください。
プロンプトマークの長さ: 99999
これは、存在しないブランチに誤って切り替えてセッション エラーを引き起こすことを避けるためです。
構成制御フローはシンプルで直感的であり、構成ファイルを介して管理されます。プロット作成者などの技術者以外でも、構成ファイルのルールを直接学習して、構成ファイルを変更することができます。プログラミングの知識がなくても対話ロジックを更新できます。
プロットの高い確実性: 同じ入力と構成が与えられた場合、プロットの方向は一般に一貫しています。これは、対話プロットの一貫性と予測可能性を確保するために非常に重要です。
コストが低く、複数の AI によって同時に処理されるのではなく、コンテキストが巧みに結合および置き換えられるため、通常の会話とほぼ同じ量のトークンが消費され、コストが節約されます。
高速で、通常の対話 QA のように結果を生成し、ゲーム スクリプトのようにプロットを作成します。
個人開発者や小規模開発チームに適した低コストAIストーリーと斬新なソリューション 低コスト、高速性、高制御性を実現し、モデルやプロンプトワード効果の向上により効果がダイレクトに向上します。
対話プロットのチャット シナリオの場合、プロットが比較的固定されており、対話パスが事前に設定されており、更新頻度が高くない場合は、構成制御フローを使用する方が適しています。これは、高度な制御性と簡単な操作が提供されるためです。・管理方法を理解している。
対話システムが高度な対話性とパーソナライゼーションを必要とする場合、またはプロットの変更が複雑で、ユーザーの特定のフィードバックや行動に基づいて動的に調整する必要がある場合は、AI ベースのエージェント ソリューションを使用する方が適切である可能性があります。より高い技術投資とメンテナンスコストが必要になります。
このセクションでは、API と通信するための特定のエンドポイント情報について説明します。
財産 | 詳細 |
---|---|
URL | http://localhost:46230/conversation |
方法 | POST |
クライアントがサーバーに送信するリクエスト本文は、JSON 形式である必要があります。次の表に、各フィールドのデータ型と説明を示します。
フィールド名 | タイプ | 説明する |
---|---|---|
message | 弦 | ユーザーが送信したメッセージの内容 |
conversationId | 弦 | 現在の会話セッションの一意の識別子 |
parentMessageId | 弦 | このメッセージに関連付けられた前のメッセージの識別子 |
次の JSON オブジェクトは、この API エンドポイントにリクエストを送信するときのリクエスト本文の構造を示しています。
{
"message" : "我第一句话说的什么" ,
"conversationId" : " 07710821-ad06-408c-ba60-1a69bf3ca92a " ,
"parentMessageId" : " 73b144d2-a41f-4aeb-b3bb-8624f0e54ba6 "
}
この例では、メッセージの内容、現在の会話セッションの一意の識別子、および前のメッセージの識別子を含むリクエスト本文を作成する方法を示します。この形式により、要求されたデータがサーバーの処理ルールに準拠するだけでなく、会話コンテキストの継続性の維持も容易になります。
成功した応答は、ステータス コード200
と次のフィールドを含む JSON オブジェクトを返します。
フィールド名 | タイプ | 説明する |
---|---|---|
response | 弦 | インターフェースの応答メッセージの内容 |
conversationId | 弦 | 現在の会話の一意の識別子 |
messageId | 弦 | 現在のメッセージの一意の識別子 |
details | 物体 | 追加の使用状況の詳細を含める |
usage | オブジェクト( details ) | トークン数などの使用状況の詳細 |
{
"response" : "回答内容" ,
"conversationId" : " c9b8746d-aa8c-44b3-804a-bb5ad27f5b84 " ,
"messageId" : " 36cc9422-da58-47ec-a25e-e8b8eceb47f5 " ,
"details" : {
"usage" : {
"prompt_tokens" : 88 ,
"completion_tokens" : 2
}
}
}
さまざまなアーキテクチャで実行できます (ネイティブ Android はまだサポートされていません。sqlitev3 は cgo を必要とします)。cgo のコンパイルは複雑であるため、arm プラットフォームやその他のアーキテクチャで、対応するシステム アーキテクチャでローカルでコンパイルを試みることができます。
API メソッドは QQ チャネルを呼び出して直接アクセスします
監査リクエストパラメータ
要求を監査者として別の GSK LLM に送信する必要がある場合、返される JSON 形式は次のとおりです。
{ "result" : %s }
ここの%s
特定の浮動小数点値に置き換えられるプレースホルダーを表します。
バブル生成リクエスト結果
別の GSK LLM にバブルの生成を要求する場合、返される必要がある JSON 形式は次のとおりです。
[ " " , " " , " " ]
これは、バブル生成の結果が 3 つの文字列を含む配列であることを意味します。この形式は、結果を返すとき、または 3 以下の 3 つの異なるバブルを指定するために使用されます。
エージェントのような機能を実装するために複数の gsk-llm を開く必要はなくなりました。新しいマルチ構成カバレッジ、プロンプト パラメーター、および Lotus 機能に基づいて、バブル生成やストーリーの進行などの複雑な機能の実装を自分で要求できます。
GetAIPromptkeyboardPath には、独自のアドレスを指定するか、プロンプト パラメーターを含めることができます。
ミドルウェアを使用してプロンプト パラメータを指定する場合、構成はプロンプト フォルダにあり、その形式は xxx-keyboard.yml です。ミドルウェアを使用しない場合は、パスにプロンプト パラメータを指定し、対応する xxx.yml をプロンプトに配置してください。フォルダ)
システム プロンプト ワードの gsk-llm 共同作業の /conversation アドレスを設定します。システム プロンプト ワードはテキストの json 配列を返す必要があることに同意します (3)。
本プロジェクトは、以下の著名プロジェクトのアイデアを参考にし、簡略化したAIテキスト制御フロー構成形式を実装しています。
ラサ
麻ひも
インクルライター