このプロジェクトは、2つのキャラクター間のロールプレイング対話を生成するPythonベースのツールです。当初はドナルド・トランプとジョー・バイデン間の会話をシミュレートするように設定されていますが、任意の2つのキャラクターを使用するように簡単に修正できます。
- カスタマイズ可能なキャラクター: 最初はトランプとバイデン用に設定されていますが、キャラクターの説明を簡単に変更して、任意の2つのキャラクター間の対話を作成できます。
- キャラクター生成: 提供された説明に基づいて、性格特性、背景、目標、話し方を含む詳細なキャラクタープロフィールを作成します。
- 動的対話生成: キャラクター間でリアルで文脈を意識した会話を生成します。
- バイリンガルサポート: キャラクター生成と対話の両方で英語と中国語をサポートします。
- カスタマイズ可能なトピック: ユーザーがキャラクターに議論させるカスタムトピックやシナリオを入力できます。
- 文脈認識: 会話の文脈を維持し、一貫性のあるマルチターン対話を可能にします。
- JSON出力: 生成された対話とキャラクタープロフィールをJSONフォーマットで保存し、解析と分析を容易にします。
- インタラクティブモード: ユーザーが会話の方向を導くためのインタラクティブなコマンドラインインターフェースを提供します。
- 柔軟なキャラクター切り替え: 対話生成中に自動的にキャラクター間を切り替えます。
- 設定可能なパラメータ: 多様な対話生成のためにtemperatureなどのモデルパラメータの調整を可能にします。
- Python 3.7+
zhipuai
ライブラリ- GLM-4 APIキー
-
このリポジトリをクローンします:
git clone https://github.com/o1xhack/glm-role-agent cd glm-role-agent
-
必要なパッケージをインストールします:
pip install -r requirements.txt
-
GLM-4 APIキーを設定します:
APIキーをローカル環境変数に設定することをお勧めします。これは、
~/.bashrc
、~/.zshrc
、または同等のシェル設定ファイルに以下の行を追加することで行えます:export ZHIPUAI_API_KEY='your-api-key-here'
この行を追加した後、シェル設定をリロードするかターミナルを再起動することを忘れないでください。
または、環境変数を設定していない場合、スクリプトを実行する前に一時的にエクスポートすることができます:
export ZHIPUAI_API_KEY='your-api-key-here' python main.py --lan=en
注意:'your-api-key-here'を実際のGLM-4 APIキーに置き換えてください。
希望する言語オプションでメインスクリプトを実行します:
python main.py --lan=en # 英語の場合
python main.py --lan=zh # 中国語の場合
プロンプトに従って会話のトピックを入力します。'quit'と入力して対話生成を終了します。
対話で使用するキャラクターを変更するには:
main.py
ファイルを開きます。text1
とtext2
変数を見つけます(約20行目付近)。- これらの変数の内容を希望するキャラクターの説明に置き換えます。
- ファイルを保存し、通常通りスクリプトを実行します。
例えば、アインシュタインとニュートン間の対話を作成するには、説明を次のように変更できます:
text1 = """
アルバート・アインシュタイン、相対性理論で有名な著名な物理学者。
彼は空間、時間、重力についての我々の理解を革新しました。
アインシュタインは思考実験と複雑なアイデアを簡単な言葉で説明する能力で知られていました。
"""
text2 = """
サー・アイザック・ニュートン、古典力学の基礎を築いたイギリスの物理学者および数学者。
彼は運動の法則と万有引力の法則を発見し、微積分を発展させ、光学で画期的な進歩を遂げました。
ニュートンは体系的なアプローチと「私がより遠くを見ることができたとすれば、それは巨人の肩の上に立っていたからです」という有名な引用で知られています。
"""
main.py
: 対話ジェネレーターを実行するメインスクリプトcharacter_generator.py
: キャラクタープロフィールを生成dialogue_generator.py
: 対話生成ロジックを処理model_interaction.py
: GLM-4モデルとの相互作用を管理data_saver.py
: 対話の保存とフォーマットを処理
貢献は歓迎します!お気軽にPull Requestを提出してください。
このプロジェクトは AGPL-3.0 ライセンスの条件の下でライセンスされています。詳細については、LICENSE ファイルを参照してください。