作为 Poe 的忠实用户,我曾分享过我的使用体验,尽管每个月的 Poe 使用额度总是有剩余。今天,我想介绍如何通过 Poe 提供的 API 接口,结合一个实用的工具——poe-api-wrapper,来高效地完成 AI 绘图和文字创作。
Poe API 接口的整合
Poe 提供了 API 接口,可以轻松整合到自己的程序中。通过阅读官方文档,我发现了一个非常实用的工具——poe-api-wrapper。这个工具允许用户共享在 Poe 的使用额度,而无需额外收费。
poe-api-wrapper 是一个基于 Python 的 API 接口库,采用 Httpx 技术。使用它,你可以通过 API 接口免费连接到 ChatGPT、DALLE、Claude、Mistral、Gemini 等多种服务。
操作步骤
建议先运行示例代码,了解这个库的功能。
你可以通过两种方式获得 token,我使用的是后者。
运行示例后的效果如下:
在 Poe 和 GPT 平台中,DALLE 的图像生成速率存在一定限制,通常默认只生成一张图片。参考了 poe-api-wrapper 仓库,我编写了一个 Python 代码,能够连续生成多张图片。
python
from poe_api_wrapper import PoeApi
import requests
import os
初始化 PoeApi 客户端
token = “yourtoken”
client = PoeApi(token)
从文件中读取提示列表
with open(“draw-input.txt”, “r”) as file:
prompts = file.readlines()
去掉每行末尾的换行符,并过滤掉空行
prompts = [prompt.strip() for prompt in prompts if prompt.strip()]
定义保存图片的文件夹路径
save_folder = “/Users/yourpath”
确保保存图片的文件夹存在
if not os.path.exists(save_folder):
os.makedirs(save_folder)
初始化 chatCode
chatCode = None
循环遍历提示列表,并发送给 DALL-E 3
for prompt in prompts:
print(f”正在请求: {prompt}”)
for _ in range(4): # 重复生成4次图片
for chunk in client.send_message(“DALL-E-3″, prompt, chatCode=chatCode, timeout=60):
# 如果是新的对话,保存 chatCode
if not chatCode and ‘chatCode’ in chunk:
chatCode = chunk[‘chatCode’]
print(f”新对话创建 | chatCode: {chatCode}”)
# 检查 chunk 中是否包含图片 URL
if 'response' in chunk and chunk['response'].startswith('!['):
image_url = chunk['response'].split('(')[1].split(')')[0]
print(f"生成的图片 URL: {image_url}")
# 获取图片的内容
response = requests.get(image_url)
if response.status_code == 200:
# 从 URL 中提取图片文件名
filename = os.path.basename(image_url.split('?')[0])
# 定义图片保存路径
file_path = os.path.join(save_folder, filename)
# 保存图片
with open(file_path, 'wb') as file:
file.write(response.content)
print(f"图片已保存到: {file_path}")
else:
print(f"下载图片失败: {response.status_code}")
不久后,我便用 DALLE3 生成了 200 多张图片。
代码功能说明
- 在代码所在的文件夹中,创建一个名为 “draw-input.txt” 的文件,用于存放 AI 绘图的提示词。文件中的每一行代表一个独立的提示词。运行代码时,它会批量处理这些提示词,每个提示词默认生成 4 张图片。
- Poe 目前提供三种 AI 绘图选项。在上述代码中,“DALL-E-3”可以直接替换为“Playground-v2”或“StableDiffusionXL”,但 DALL-E-3 的生成效果通常是最佳的。
生成的部分图片
注:上图的提示词参考了相关推特博主。
连续生成对话
Poe 中的机器人种类繁多,除了官方的,我们还可以使用第三方建立的,只需设置好机器人的名字即可。
python
from poe_api_wrapper import PoeApi
import datetime
初始化 PoeApi 客户端
token = “yourtoken”
client = PoeApi(token)
bot = “Claude-2-100k”
从文件中读取消息列表
with open(“chat-input.txt”, “r”) as file:
messages = [line.strip() for line in file if line.strip()] # 过滤掉空行
初始化 chatCode
chat_code = None
创建文件用于保存结果
now = datetime.datetime.now()
timestamp = now.strftime(“%Y%m%d%H%M%S”)
result_file = open(f”/Users/yourpath/result_{timestamp}.md”, “w”)
循环发送消息
for message in messages:
if chat_code:
response_gen = client.send_message(bot, message, chatCode=chat_code)
else:
response_gen = client.send_message(bot, message)
for chunk in response_gen:
if 'chatCode' in chunk and not chat_code:
chat_code = chunk['chatCode']
# 写入去除了前导空格的回应
result_file.write(chunk["response"].lstrip()) # 使用 lstrip() 移除左侧空格
result_file.flush()
# 在每个结果后增加一个额外的空行
result_file.write("\n\n")
关闭结果文件
result_file.close()
代码功能说明:
1. 在代码所在的文件夹中,创建一个名为 “chat-input.txt” 的文件,用于存放对话的关键词。文件中的每行包含一个独立的关键词。执行代码后,它将自动批量处理这些关键词。
2. 在代码中,设置默认机器人为 “Claude-2-100k”,但可以根据需要更换为其他机器人。
应用场景:写教程
使用 GPT 生成的大纲作为 chat-input 的输入内容,执行程序后,可以创建一个大约 30kb 的文件。
我的理解是,我们在学习时往往只关注关键点,针对性地逐个提问更为合适。
应用场景:写小说
我向 GPT 请求了一份小说大纲和 20 个小说标题。将这些标题输入到 chat-input.txt 文件后,运行程序,结果是 ChatGPT-16k 为我创作了超过 30,000 字的小说。
生成的小说质量一般,需要优化提示词。
应用场景:批量写作
想象一下,在寒假的最后一天,小朋友需要完成 30 篇作文。只需将这 30 个作文主题录入一个文本文件,运行程序,几分钟内这 30 篇作文就能完成。
应用场景:批量检索
利用我编写的代码,只需将 bot 设置为 “Web-Search”,并把想查询的问题批量输入到 chat-txt 文件中,运行程序后,它能在几分钟内完成所有搜索。
在 Poe 平台上,使用第三方机器人非常简便。例如,可以先利用特定的机器人来批量产生 AI 绘图的提示词,然后将这些提示词输入到 draw-input 文件中,接着就可以批量生成相应的图片。
poe-api-wrapper 推出的机器人群聊也很有趣。
我尝试了一下,设置了几个机器人模型,其中一个配置成了 “Web-Search” 机器人,这样在对话中就能包含搜索结果。
总结
- 本文深入探讨了 Poe API 的高效应用及其在各种场景下的实际价值。
- 通过 poe-api-wrapper,我们不仅可以批量生成 AI 绘图和文本,还能与多种 AI 模型如 ChatGPT、Claude、DALL-E 等进行交互。
- 实际案例涵盖了教程编写、小说创作、批量写作、批量检索等多个方面,展示了 Poe API 在提高工作效率和创意表达方面的巨大潜力。
- 此外,文章还探讨了 Poe 平台上第三方机器人的使用和机器人群聊的趣味性。