fastapi_poe 服务器机器人创建详细教程

好的,我将为您提供文档中教程的中文翻译。由于我无法创建图片,我会以文字形式提供翻译内容。以下是翻译的教程内容:

---

# Git Gud 指南:Poe 服务器机器人

你已经通过了基本的提示机器人,现在你的面前有一堆奇怪的东西。你试图理解它,但文档到处都是,甚至如果你真的运行了一个,你试图添加更高级的功能,但你就是做不到。没关系。这就是我在这里的原因。

涵盖几个主题。什么是模态(Modal)?什么是密钥和访问密钥?

## 什么是模态(Modal)?
模态只是一个小服务器,允许人们“托管”应用程序以与东西交互。模态每月免费提供价值30美元的计算能力,这已经足够了。

## Poe 访问密钥是什么?
Poe 访问密钥是一堆随机数字和字母,计算机用它来验证你的机器人是它们所说的那个。你发送你的密钥以及你的机器人的响应,以被允许与用户交谈。

## 什么是“应用程序”?
你知道什么是应用程序,但你不确定后端看起来是什么样子。它看起来是几行内置函数的代码。对我们来说,现在我们将从 Poe 快速开始的“echobot”指南中取一些代码行,这些代码行将指导“模型”或“函数”以某种方式行为。

## 代码如何在 Poe 上变得交互式?
好问题。

这里的第一步是将模态的东西安装到你的个人电脑上。通常,你会进入终端/命令提示符并输入:
```
pip install modal-client
```
(有时是 `pip3`,取决于你的设置)

然后运行:
```
modal token new --source poe
```
如果该命令成功运行,你将被带到你的网页浏览器,在那里你将被要求使用你的 GitHub 账户登录模态。太好了!

快速确认一下,确保你安装了 `git`,这样你就可以获得 Poe 服务器机器人快速开始的 Python 文件的副本。

### 克隆入门代码并部署到模态

在你的终端中运行:
```
git clone https://github.com/poe-platform/server-bot-quick-start
```

使用以下命令导航到你刚刚克隆的文件夹:
```
cd server-bot-quick-start
```

一旦进入该文件夹,安装你的应用程序将需要的所有基本工具:
```
pip install -r requirements.txt
```

让我们快速起草一个草稿,这样你就可以看到这是如何工作的:
```
modal deploy echobot.py
```

模态现在将部署你的应用程序(代码行)并输出两个 URL:
a) 端点(它是一个链接,可能以类似 `poe-fastapi-app.modal.run` 的东西结尾),你的应用程序在该链接上托管
b) 一个内部页面,你可以在该页面上监控你的应用程序。你将使用前者将你的机器人集成到 Poe 中。

在我们继续之前,让我们回顾一下:
- **模态**:我们将代码从计算机传输到互联网的方式。
- **端点**:`http.blah-blah-blah-poe-fastapi-app.modal.run` URL,你将要放入服务器 URL 框中。
- **模态客户端**:一个看起来漂亮的网页,你可以在其中看到我们之前*部署*的代码的进展情况
- **访问密钥**:在创建或编辑你的服务器机器人时出现在 Poe 网站上的那个长串随机数字和字母

我们还没有使用访问密钥,但它听起来很重要?是的。让我们快速解决这个问题。我们需要在我们的代码中更改一件事情,并在漂亮的模态客户端网站上添加一件事情。

转到你的漂亮的模态网站,点击“secrets”标签。
点击 `Create new secret`
滚动到底部并点击 'Custom'
对于第一个键(左边)输入 `POE_ACCESS_KEY` 对于右边的值,复制你在创建或编辑你的服务器机器人时看到的“访问密钥”的超级怪异的随机*字符串*,并粘贴到框中。
现在它会要求你命名你的秘密。将这视为你的小秘密笔记本密码。我会称它为 `git-gud-secrets` 它将向你展示如何使用它的一些代码,但不用担心,我们接下来将解决这个问题。现在点击 `Finish`

呼。所以,我们已经将密钥和值存储在名为 git-gud-secrets 的笔记本中。让我们对我们的代码做一些小调整,以便我们可以使用它。回到你用来编辑代码的任何地方(VS Code/PyCharm 等)。

在像 VS Code 这样的代码编辑器中打开 echobot.py 文件。
在文件顶部,你会看到一些像 'import' 这样的东西。在这些行中添加这些:
```python
import os
import modal
```

在底部,你应该看到这样的行:
```python
bot = EchoBot()
app = fp.make_app(bot, allow_without_key=True)
```

在 'bot' 行下面添加一个新行(你不需要在这里放置实际的密钥,因为我们已经创建了秘密 POE_ACCESS_KEY):
```python
POE_ACCESS_KEY = os.environ["POE_ACCESS_KEY"]
```

接下来,更改 'app' 部分,以便它使用你的访问密钥:
```python
app = make_app(bot, access_key=POE_ACCESS_KEY)
```

然后,更改 'bot' 部分,使其看起来像这样:
```python
bot = EchoBot(access_key=POE_ACCESS_KEY)
```

最后,在 '@Stub.function' 行我们将编辑它,以便它知道使用你的秘密密码笔记本查找你创建的密钥:
```python
@app.function(secrets=[modal.Secret.from_name("git-gud-secrets")])
```

做出这些更改后,回到你的终端或命令提示符。是时候 *更新* 模态代码,以反映我们的 *本地* 更改。输入:
```
modal deploy echobot
```

按下回车键。现在模态已经更新了。

我们(可能)需要做的最后一件事是在代码中定义我们的设置,并将它们发送到 Poe,以确保我们的代码和他们的代码在同一页面上。这是如果你想使用像设置介绍消息和允许附件等功能。

## 按照规范设置你的端点

如果你使用的是 fastapi_poe 库(我们正在使用),那么你只需要在 PoeBot 类中实现 `get_settings` 方法。以下是一个来自我自己的机器人的示例,我允许附件,批准使用 'GPT-3.5-Turbo' 并设置介绍消息:
```python
async def get_settings(self, setting: fp.SettingsRequest) -> fp.SettingsResponse:
    return fp.SettingsResponse(
        server_bot_dependencies={"GPT-3.5-Turbo": 1},
        allow_attachments=True,
        introduction_message="""# EchoBot Documentation"""
```

注意:如果你想更改你使用的主要机器人,请将 'GPT-3.5-Turbo' 更改为你想要使用的主要机器人的句柄。例如 'GPT4'。

最后一步是更新你的模态并使用终端或命令提示符向 Poe 发送一次性消息。

首先,
```
modal deploy echobot
```

然后我们必须使用 CURL:
```
curl -X POST https://api.poe.com/bot/fetch_settings/<botname>/<access_key>
```
其中 bot name 是你的机器人在 Poe 上的名称,access key 是我们用作 'POE_ACCESS_KEY' 秘密的奇怪随机数字,但在这里我们必须放置实际的数字。它看起来像这样:
```
curl -X POST https://api.poe.com/bot/fetch_settings/Git-Gud-Guide/123xyz
```

几秒钟后,它应该会返回一些内容以及一条消息,比如 "Successfully set settings..."。

祝贺你。你坚持了下来,正式制作了一个 Poe 服务器机器人。这可以以许多方式扩展,但最难的部分已经完成了。查看 Poe 为创作者提供的文档以获取更多信息:https://creator.poe.com/docs/welcome-to-poe-for-creators

我希望这个 git gud 指南对你有所帮助。干杯。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值