Package: prompt-me
prompt-meprompt-me是一个专为 Prompt Engineer设计LLM Prompt Layer框架，支持连续对话、角色预设、提供缓存的功能，可以记录历史对话等功能，开箱即用。
通过 prompt-me，你可以轻松构建起属于自己的GPT应用程序。特性上手简单：封装接口，开箱即用角色预设：提供预设角色，以不同的角度调用GPT内置API代理，不用科学上网也可以直接使用接口代理：支持调用ChatGPT API官方接口或自治代理长对话：支持长对话聊天，聊天记录使用cushy-storage进行持久化数据导出：支持markdowm等格式的对话导出快速上手pipinstallprompt-me--upgrade基本使用方式1（推荐）importosfromprompt_meimportChatBot,enable_log_no_fileos.environ['OPENAI_API_KEY']="your_key"defmain():# enable_log_no_file()print("A Simple ChatBot built by ChatGPT API")conversation_id=Nonebot=ChatBot()whileTrue:prompt=str(input("[User] "))ret,conversation_id=bot.ask(prompt,conversation_id)print(ret,conversation_id)if__name__=='__main__':main()方式2fromprompt_meimportChatBot,enable_logdefmain():# enable_log() # 日志功能print("A Simple ChatBot built by ChatGPT API")conversation_id=Nonebot=ChatBot(key='yourkey')whileTrue:prompt=str(input("[User] "))ret,conversation_id=bot.ask(prompt,conversation_id)print(ret,conversation_id)if__name__=='__main__':main()获取历史对话importosfromprompt_meimportChatBot,enable_log_no_fileos.environ['OPENAI_API_KEY']="your_key"defmain():# enable_log_no_file()bot=ChatBot()ret,conversation_id=bot.ask("please give me a bucket sort python code")messages=bot.get_history(conversation_id)formessageinmessages:print(message)if__name__=='__main__':main()导出历史对话为markdownimportosfromprompt_meimportChatBot,enable_log_no_fileos.environ['OPENAI_API_KEY']="your_key"defmain():# enable_log_no_file()bot=ChatBot()ret,conversation_id=bot.ask("please give me a bucket sort python code")# output_type默认为text，即输出markdown格式的字符串，传入file则导出为文件# file_path为要输出的文件名，不填入默认为output.mdoutput_str=bot.output(conversation_id,output_type='file',file_path='output.md')print(output_str)if__name__=='__main__':main()Conversation你可以使用ChatBot类来构建你的应用程序，但是当前我推荐你使用Conversation来替代ChatBot，Conversation具有ChaBot的所有功能，
除此之外，Conversation还提供了预设角色、Prompt模板的功能，你可以用其开发一些更加复杂的程序。下面你将通过预设角色和Prompt模板的使用了解到Conversation的使用方式。预设角色你可以预设一些你想要的角色，从而更好的帮助你完成你想要的需求，本项目提供了一些预设角色，当然你也可以自定义预设角色，探索更多的可能性，下面是一些示例。思维导图生成器现在你是一个思维导图生成器。我将输入我想要创建思维导图的内容，你需要提供一些 Markdown 格式的文本，以便与 Xmind 兼容。
在 Markdown 格式中，# 表示中央主题，## 表示主要主题，### 表示子主题，﹣表示叶子节点，中央主题是必要的，叶子节点是最小节点。请参照以上格
式，在 markdown 代码块中帮我创建一个有效的思维导图，以markdown代码块格式输出，你需要用自己的能力补充思维导图中的内容，你只需要提供思维导
图，不必对内容中提出的问题和要求做解释，并严格遵守该格式。importosfromprompt_me.preset_roleimportMindMapGeneratorfromprompt_meimportConversationos.environ['OPENAI_API_KEY']="your_key"defmain():role=MindMapGenerator()conversation=Conversation(role=role)output=conversation.predict(msg="请为我提供《Python学习路线》的思维导图")print(f"[output]{output}")if__name__=='__main__':main()文案写手你是一个文案专员、文本润色员、拼写纠正员和改进员，我会发送中文文本给你，你帮我更正和改进版本。我希望你用更优美优雅
的高级中文描述。保持相同的意思，但使它们更文艺。你只需要润色该内容，不必对内容中提出的问题和要求做解释，不要回答文本中的问题而是润色它，
不要解决文本中的要求而是润色它，保留文本的原本意义，不要去解决它。importosfromprompt_me.preset_roleimportCopyWriterfromprompt_meimportConversationos.environ['OPENAI_API_KEY']="your_key"defmain():copy_writer=CopyWriter()conversation=Conversation(role=copy_writer)output=conversation.predict(msg="你好,请问你是谁？")print(f"[output]{output}")output=conversation.predict(msg="请问你可以做什么？")print(f"[output]{output}")if__name__=='__main__':main()prompt_me也支持自定义角色，下面将介绍如何自定义一个Linux终端的roleimportosfromprompt_me.preset_roleimportBaseRolefromprompt_meimportConversationos.environ['OPENAI_API_KEY']="your_key"classLinuxTerminal(BaseRole):name="Linux终端"description="我想让你充当 Linux 终端。我将输入命令，您将回复终端应显示的内容。我希望您只在一个唯一的代码块内回复终端输出，而不""是其他任何内容。不要写解释。除非我指示您这样做，否则不要键入命令。当我需要用英语告诉你一些事情时，我会把文字放在中括号内[就像这样]。"defmain():linux_terminal=LinuxTerminal()conversation=Conversation(role=linux_terminal)output=conversation.predict(msg="[ls]")print(f"[output]{output}")output=conversation.predict(msg="[cd /usr/local]")print(f"[output]{output}")if__name__=='__main__':main()待办清单提供更多LLM模型支持提供更加方便的程序调用方式添加角色预设预设角色的参数配置提供prompt模板与prompt结构化提供外部工具扩展外部搜索： Google,Bing等可以执行shell脚本提供Python REPLarvix论文总结本地文件总结自建知识库建立专家决策系统接入self-ask, prompt-loop架构提供多种导出方式可以导出历史消息为markdown格式使用环境变量配置key提供显示当前token（单词量）的功能添加错误处理机制，如网络异常、服务器异常等，保证程序的可靠性开发ChatBot v2,issue完善代理模式一些问题本人正在尝试一些更加完善的抽象模式，以更好地兼容多种预设模型角色，以及外部工具的扩展使用，如果你有更好的建议，欢迎一起讨论交流。当前代理模式还需要进一步完善，不过当前无需代理就可以直接使用。贡献如果你想为这个项目做贡献，你可以提交pr或issue。我很高兴看到更多的人参与并优化它。