使用Chatgpt和AWS Lambda(Python)Telegram AI机器人创建
#aws #python #telegrambot #chatgpt

Amazon Web Services(AWS)是远程计算服务(也称为Web服务)的集合,构成了Amazon.com提供的云计算平台。这些服务来自全球12个地理区域。 AWS提供了广泛的服务,例如计算能力,存储选项,网络和数据库以及开发人员工具和分析。

了解无服务器

要了解AWS Lambda是什么,您必须首先了解无服务器体系结构的全部内容。通常,无服务器应用程序是不需要任何服务器的应用程序才能运行的。运行无服务器应用程序时,您将获得不必担心OS设置,修补或缩放服务器时必须考虑的服务器的好处。

lambda(无服务器)

aws lambda是AWS提供的无服务器服务。 Lambda控制台,Lambda API,AWS SDK,AWS CLI和AWS工具包可以直接调用Lambda功能。在AWS lambda代码中,lambda代码在安息时以加密形式存储。

电报和chatgpt

电报是一个流行的消息平台,允许用户交换文本,图像,视频和其他媒体。电报机器人是可以与电报用户进行交互并响应其消息的程序。 chatgpt是一种人工智能语言模型,可以根据收到的输入生成文本。

在此博客中,您将使用Chatgpt和AWS Lambda构建电报机器人。

先决条件

要与本教程一起,您需要以下内容:

  1. 电报帐户。
  2. python 3安装在您的本地机器上。
  3. 一个AWS帐户。
  4. 电报机器人令牌
  5. 一个OpenAI帐户

设置电报bot
要设置电报机器人,请执行以下步骤:

  1. 打开电报并搜索Botfather。
  2. 键入“/start”来启动对话。
  3. 类型“/newbot”创建一个新的机器人。
  4. 按照说明选择一个名称和用户名 您的机器人。
  5. 创建了机器人后,您将获得令牌。复制 这个令牌以后使用。

Image description

设置AWS lambda函数
要设置AWS lambda功能,请按照以下步骤:

  1. 打开AWS管理控制台并导航到Lambda服务。
  2. 单击“创建功能”。
  3. 选择“从头开始的作者”。
  4. 输入您功能的名称。
  5. 选择“ Python 3.8”作为运行时。
  6. 在“权限”下,选择“创建一个新角色 lambda许可”。
  7. 单击“创建功能”。

Image description

  1. 向下滚动到“功能代码”部分,然后在以下python代码中粘贴:
import json
import telebot
import openai
import logging

TELEGRAM_TOKEN = 'token'
OPENAI_API_KEY = "token"

openai.api_key = OPENAI_API_KEY
bot = telebot.TeleBot(TELEGRAM_TOKEN)

def generate_response(text):
    prompt = text
    response = openai.Completion.create(
        engine="davinci",
        prompt=prompt,
        temperature=0.7,
        max_tokens=150,
        top_p=1,
        frequency_penalty=0,
        presence_penalty=0
    )
    message = response.choices[0].text.strip()
    return message


def lambda_handler(event, context):
    try:
        message = json.loads(event['body'])['message']
        chat_id = message['chat']['id']
        text = message['text']
        logging.info(f"Received message from {chat_id}: {message}")
        if text[-1].isalpha():  # adding a dot, without a dot ChatGPT will try to complete the sentence.
            text = text + "."
        response = generate_response(text)
        bot.send_message(chat_id, response)

    except Exception as e:
        logging.error(str(e))
        pass

  1. 用您的电报机器人令牌和OpenAI API密钥替换“ telegram_token”和“ OpenAi_Api_Key”。

注意:将这些软件包添加为lambda中的一层:OpenAI,Telebot或您在代码中使用的任何其他软件包。

API网关服务中的HTTP API

创建HTTP API遵循以下步骤:

  1. 要创建我们的API,请在服务列表中查找API网关,然后单击创建API
  2. 在创建HTTP API
  3. 时选择这些配置

Image description

  1. 在路线和方法中选择“任何”。
  2. 现在创建了API,将Invoke URL Adress保存为以后。
  3. 转到lambda页面单击添加触发器,然后选择 您刚创建的API网关。
  4. 您现在需要将电报连接到API。您将设置一个 Webhook因此Telegram将自动转发每个消息 到我们的API。为此,您将在 我们的浏览器。确保在这里放置您的机器人令牌和您的 API调用URL。

https://api.telegram.org/bot/setwebhook?url =

  1. 这将返回我们的成功消息

Image description

注意:API网关HTTP API和LAMBDA函数必须在同一区域中。

要测试电报机器人,请执行以下步骤:

现在一切都设置了。每次称为api时,都会触发lambda函数。

  1. 打开电报并搜索您的机器人。
  2. 向您的机器人发送消息。
  3. 您的机器人应以Chatgpt生成的消息响应。

Image description

结论

在此博客中,您使用Chatgpt,AWS Lambda,Python创建了一个电报博客。

参考

AWS正式文档
•AWS认证的云从业者学习指南:CLF-C01考试书
Ben Piper和David Clinton
•Google
•chatgpt

创建:
Ritesh Yadav
软件工程师(EPAM系统)

免责声明
这是一个个人博客。此处表达的观点和观点仅是作者的观点,并且不代表任何组织或任何人都可以与之相关的任何组织的观点和观点。