SudyIndex
- SudyIndex ver. 0.1.0f4,000 JPY
- お布施 レイナちゃん画像詰め合わせ11,000 JPY
- お布施 レイナちゃん画像詰め合わせ23,000 JPY
AIキャラクター専用の記憶・想起システム「SudyIndex」です。 「SudyIndex」は、既存のライブラリが持つ欠点を克服し、キャラクター用に最適化され、適切な類似度検索を提供するだけでなく、忘却機能や自動的に会話を話題ごとに分割して記憶する機能も実装しています。これにより、自然な記憶と会話の両方を実現しました。 さらに、完全ローカル化が可能なので、外部APIの使用料が気になる方でも安心です(注)。また、Pythonファイルで提供しているため、自分好みのカスタマイズが可能です。 商用利用は可能ですが、法人でご利用される場合は私のTwitterアカウント(https://twitter.com/sudy_super)までご相談ください。 注: ver.0.1.0fでは完全ローカル化は対応していません。次のバージョンで対応予定です。 もしよかったらお布施してくださると助かります。僕が開発しているAITuber、雨宮レイナの画像詰め合わせがダウンロードできます。1の方は3枚、2の方は10枚入っています。
必要ライブラリ
numpy openai transformers sentence_transformers
使い方
前提: OPENAI_API_KEYという環境変数にOpenAI APIキーが設定されていること。 ①settings.jsonを開いて以下の設定をします。 character_name: 応答システム側の名前を設定できます。 lisner_name: ユーザー側の名前を設定できます。 remember_rate: 想起時の類似度検索の閾値です。デフォルトは0.3で、数字を増やすとより関連度が高い記憶を抽出でき、減らすと比較的まんべんなく抽出できます。0.2~0.4がおすすめです。 forgetting_rate: 忘却度を制御する係数です。デフォルトは0.02で、数字を増やすと忘れやすく、減らすと忘れにくくなります。0.01~0.1がおすすめです。 retrieve_number_rate: データベースから取りだす記憶の数を制御できます。デフォルトは10です。 embedding_mode: local/gptでベクトル化をローカルでするかOpenAIのembedding-ada-002でするかを選べます。ver. 0.1.0cでは切り替えは未実装で、localで固定されています。 summary_mode: local/gptで要約をローカルでするかchatGPTでするかを選べます。ver. 0.1.0cでは切り替えは未実装で、gptで固定されています。 ②以下のコードで動作させます。コードは例です。 ```python from sudy_index import SudyIndex def __init__(self): self.memory_system = SudyIndex() def system(self, userComment): calc_result = self.memory_system.system_running(userComment) ### ここに応答生成処理 ### aituber_response = # 応答 self.memory_system.system_running2(aituber_response) ``` 記憶システムを一つのフォルダにまとめた場合は下記のようにしてください。 ```python from <フォルダ名>.sudy_index import SudyIndex def __init__(self): self.memory_system = SudyIndex() def system(self, userComment): calc_result = self.memory_system.system_running(userComment) ### ここに応答生成処理 ### aituber_response = # 応答 self.memory_system.system_running2(aituber_response) ``` calc_resultには ``` 該当記憶の作成日時1 該当記憶の内容1 該当記憶の作成日時2 該当記憶の内容2 ``` という形式で取り出された記憶情報が入っています。具体的には下記のようになります。 ``` 2023-06-14 02:56:59 リスナーが富士山の標高を尋ね、レイナは「634m」と間違った答えを返したが、リスナーに修正されて正しい答えは「3776m」であることが分かった。レイナ は自分の間違いを認めた。 2023-06-14 02:59:32 リスナーが「マリオの映画は観ましたか?」と尋ね、レイナは「観てない」と回答しました。 ``` このままchatGPTのコンテキスト等に入れることが可能です。 また別途、conversation_history.csvから会話履歴を取り出すことも可能です(抽出コードは付属していません)。
紹介サイト
https://note.com/sudy_super/n/n52fd9a3f34ef
動作環境
Windows11で動作確認。 OSに依存するものはないので他のWindowsやMac、Linuxでも動作するはずです。
アップデート履歴
[2023-06-14: v0.1.0] 最初のバージョン [2023-06-15: v0.1.0a] chatGPTを使った要約処理のモデルをgpt-3.5-turboからgpt-3.5-turbo-0613に変更 [2023-06-15: v0.1.0b] 想起時にデータベースから取りだす記憶の数を制御可能になるように変更 [2023-06-15: v0.1.0c] 初回起動時に一回インスタンスを作ってしまうと再度インスタンスを作り直さない限りその後検索ができなくなる不具合を修正 [2023-06-28: v0.1.0d] DBからのロード時にエラーが出る可能性がある不具合を修正 [2023-07-18: v0.1.0e] 起動時にファイルの読み込みエラーが出る不具合とDBのロードが適切に行われない不具合を修正 [2023-07-18: v0.1.0f] 軽微な不具合を修正
利用規約
利用規約 本規約は、お客様(第1条に定めます)が、すでぃー(以下「私」といいます)の提供する本ソフトウェア(第1条に定めます)を利用するための条件及びお客様と私との間の法律関係を定めることを目的とします。お客様が、本ソフトウェアをダウンロードし、利用を開始した時点をもって、本規約のすべての条件に同意したこととなり、お客様と私との間で本ソフトウェアの利用契約(以下「本契約」といいます)は成立します。お客様が本規約に同意されていない場合、本ソフトウェアをご利用いただくことはできませんので、その場合は直ちに本ソフトウェアのダウンロード又は利用を中止してください。 第1条(定義) 「本ソフトウェア」とは、私が提供するSudyIndex(以下「本システム」といいます)を、本ソフトウェアを利用可能なOS搭載機器(以下「対応端末」といいます。)でご利用いただくことを目的として、私が提供するアプリケーション及びプログラム等並びに付属文書一式をいいます。 「お客様」とは、本システムを私から購入したうえで、本契約に基づき本ソフトウェアをダウンロード又は利用する方をいいます。 第2条(利用の範囲) お客様は、本ソフトウェアをお客様ご自身が利用する目的に限り、利用することができます。 お客様の利用権は、非独占的なものであり、また第三者に再利用許諾、譲渡又は契約上の地位の承継等により利用させることはできません。 お客様は、本ソフトウェアを私が別途指定する対応端末及び対象OSに限り利用することが推奨されます。また、お客様が利用する対応端末及び対象OS並びに本ソフトウェアをダウンロードするためのインターネット接続環境は、お客様の費用と責任において準備するものとし、私は、本ソフトウェアに付属するマニュアルを除いて一切のサポート義務を負いません。 第3条(著作権等の知的財産権) 本ソフトウェアに係る著作権等の知的財産権その他の権利は、私に帰属します。本契約によるお客様への本ソフトウェアの利用許諾は、お客様に対する何らの権利移転等を意味するものではありません。 第4条(免責事項) 私は、本ソフトウェアに本規約に定める内容に適合しない点(以下「契約不適合」といいます)が発見された場合で、私が契約不適合の修補が必要であると認めたときは、私が適当と認める方法により、お客様に対し契約不適合のある旨を周知又は通知するとともに、本規約に定める内容に適合する本ソフトウェアを提供するか当該ソフトウェアの契約不適合を修補すべく努めますが、その実現を保証するものではなく、また、契約不適合に起因してお客様が被った害(通信機器、ソフトウェア等の破損を含みます)及び第三者が被った損害については責任を負いません。 私は、本ソフトウェアの正確性、完全性、即時性、実現性、有用性、商品性、特定目的適合性、第三者の権利又は利益の非侵害性その他について保証するものではなく、お客様がこれらに関して損害を被ったとしても、私は責任を負いません。 本ソフトウェアのご利用にあたり、お客様に生じた損害(第三者からお客様に対してなされた損害賠償請求に基づく損害を含む)については、一切の責任を負いません。 第5条(遵守事項) お客様は、第2条に規定した目的以外に本ソフトウェアを利用してはならず、また、本ソフトウェアの一部のみをダウンロード又は利用してはならないものとします。 お客様は、本ソフトウェアの全部又は一部をバックアップ作成目的以外で複製、翻案することはできません。 お客様は、本ソフトウェアの全部又は一部を、有償、無償を問わず、公衆送信、頒布、譲渡、貸与、利用許諾をすることはできません。 お客様が本ソフトウェアの改変を行い、その改変により発生した二次的著作物については、有償・無償を問わず、公衆送信、頒布、譲渡、貸与、利用許諾をすることはできません。 お客様は、本ソフトウェアの利用にあたり、私又は第三者の知的財産権その他の権利又は利益を侵害してはなりません。また、お客様による本ソフトウェアの利用に関して、第三者との間で紛争等が生じた場合は、お客様自身の費用と責任においてこれを解決するものとします。 お客様は本ソフトウェアを本規約上認められた範囲において利用することができるものとします。 第6条(損害賠償) お客様が、本ソフトウェアの利用に関し私に損害を与えた場合には、お客様は、私に対し、私に生じた一切の損害(対応に要した弁護士費用を含む。)を賠償するものとします。 第7条(契約期間) 本契約は、お客様が本ソフトウェアをダウンロードし、使用を開始した時点をもって、成立し、効力を生じるものとします。 お客様が、本規約の条項のいずれかに違反した場合、私は何らの通知催告等の手続きなしに本契約を解除し、本契約を終了させることができるものとします。 本契約が終了した場合には、お客様はいかなる理由においても本ソフトウェアを利用することはできません。加えて、お客様は、自己の占有又は管理下にある本ソフトウェア(本契約に違反して複製された複製物を含む)を全て速やかに破棄又は消去するものとします。 第3条乃至第4条、第6条及び第9条の規定は、本契約終了後も有効に存続するものとします。 第8条(反社会勢力の排除) お客様は、次のいずれかであることを表明し、かつ将来にわたっても保証するものとします。 (1) 自ら(法人その他の団体にあっては、自らの役員を含みます)が暴力団(暴力団員による不当な行為の防止等に関する法律(平成3年法律第77号。以下「暴対法」といいます。)第2条第2号に規定する暴力団をいい、以下同じとします。)、暴力団員(暴対法第2条第6号に規定する暴力団員をいい、以下同じとします。)、暴力団関係法人、総会屋、社会運動標ぼうゴロ、政治活動標ぼうゴロ、特殊知能暴力集団等その他これらに準じる者及びこれらの者と密接な関わりを有する者(以下併せて「反社会的勢力」といいます。)ではないこと、並びに自己の役員、従業員、関係者等が反社会的勢力の構成員又はその関係者ではないこと。 (2) 自らの行う事業が、反社会的勢力の支配を受けていないこと。 (3) 自らの行う事業に関し、反社会的勢力の威力を利用し、財産上の不当な利益を図る目的で反社会的勢力を利用し、又は、反社会的勢力の威力を利用する目的で反社会的勢力を従事させていないこと。 (4) 自らが反社会的勢力に対して資金を提供し、便宜を供与し、又は不当に優先的に扱うなどの関与をしてないこと。 お客様は、自ら又は第三者を利用して次の各号のいずれか一にでも該当する行為を行わないことを保証するものとします。 (1) 暴力的な要求行為 (2) 法的な責任を超えた不当な要求行為 (3) 取引に対して、脅迫的な言動をし、又は暴力を用いる行為 (4) 風説を流布し、偽計を用い、又は威力を用いて、私の信用を毀損する行為 (5) その他前各号に準ずる行為 第9条(準拠法及び裁判管轄) 本契約に関する準拠法は、日本法とします。 本契約に関する紛争は、東京地方裁判所を第一審の専属的合意管轄裁判所とします。 第10条(その他) お客様が、本ソフトウェアをダウンロード又は利用するにあたり発生するデータ通信料等については、お客様がこれを負担するものとします。 お客様は本ソフトウェアを国外に持ち出す場合等、日本国又は諸外国の輸出入に関連する法令等(以下「輸出入関連法規類」といいます)の適用を受ける場合には、輸出入関連法規類を遵守するものとします。お客様は、本項の定めに違反した行為により生じる問題について、お客様自身の費用と責任でこれを解決するものとします。 私は、お客様に事前に個別に通知することなく、本規約を変更することができます。この場合、私は、変更の内容を私のTwitterアカウント(ユーザー名:@sudy_super)のツイートに掲載するものとし、周知の日から3日を経過した日をもって、本規約は変更されるものとします。本規約変更後のお客様による本ソフトウェアの利用は、変更後の規約に基づく利用となります。