這個專案是一個基於 Python 的工具,用於生成兩個角色之間的角色扮演對話。雖然最初設置為模擬唐納德·川普和喬·拜登之間的對話,但可以輕鬆修改為使用任何兩個您選擇的角色。
- 可自定義角色:雖然最初為川普和拜登設置,但您可以輕鬆修改角色描述,以創建任何兩個角色之間的對話。
- 角色生成:根據提供的描述創建詳細的角色簡介,包括性格特徵、背景、目標和說話風格。
- 動態對話生成:在角色之間生成逼真的、具有上下文意識的對話。
- 雙語支持:支持英語和中文兩種語言進行角色生成和對話。
- 自定義主題:允許用戶輸入自定義主題或場景,供角色討論。
- 上下文感知:保持對話上下文,實現連貫的多輪對話。
- 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
或等效的 shell 配置文件中添加以下行來實現:export ZHIPUAI_API_KEY='your-api-key-here'
添加此行後,記得重新加載您的 shell 配置或重啟終端。
或者,如果您還沒有設置環境變量,可以在運行腳本之前臨時導出它:
export ZHIPUAI_API_KEY='your-api-key-here' python main.py --lan=zh
注意:將 '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文件。