当前位置: 首页 > 网络应用技术

使用Python和Flask生成AI Web应用程序

时间:2023-03-06 22:34:23 网络应用技术

  使用人工智能(AI)来创建Web应用程序不需要大量代码或从头开始启动服务。我们要创建一个可以为用户翻译文本的网站。

  对于前端,我们需要允许我们集成服务而不必遇到很多麻烦。Flask和其他框架是一个不错的选择。Flask的创始人将其描述为“ Micro -Frame”,这意味着该框架将会提供核心服务(例如路由和模板),但是在其他方面,允许使用该应用程序所需的任何背部端服务。Flask仍然是一个轻量级的框架,可以快速设置和部署。需要数据库或任何精致且复杂的内容。我们只需要一个框架来创建UI并能够回电 - 端服务。

  对于后端,您可以使用一组AI服务(称为Azure认知服务),而不是自己创建机器学习模型。可以通过SDK或HTTP来调用这些服务。我们可以使用Translator服务来满足其主要目标翻译文字。

  我们将探索烧瓶和翻译服务。我们将了解如何创建Web应用程序以将文本翻译成各种语言。

  要开始使用Python使用烧瓶应用程序,我们需要设置一个开发环境,该环境需要安装多个项目。不幸的是,我们想要使用的工具相对常见

  要完成该单元的学习,您必须在计算机上安装python 3.6或更高版本。您可能已经安装了Python,尤其是在您已经使用了Python时。您可以确认是否已安装了以下命令:

  如果安装了Python,则输出将显示Python版本编号。如果不是,请访问官方网站进行安装。

  在您选择的位置上创建一个目录。此目录将用作您的项目目录,其中包括我们要创建的所有代码。您可以使用命令或终端窗口中的以下命令之一来创建目录:

  Python虚拟环境不一定像听起来那样复杂。虚拟环境不是虚拟机或容器,而是一个包含运行应用程序所需的所有库的文件夹(包括Python本身)。我们可以修改该应用程序应用程序,以便我们可以使应用程序彼此独立并避免版本问题。作为最佳方法,使用Python时,应始终使用虚拟环境。

  要使用虚拟环境,我们将创建和激活虚拟环境。我们使用模块来创建虚拟环境。该模块已安装在先前的Python安装说明中。激活虚拟环境时,我们将告诉系统使用我们创建的文件夹满足其所有Python需求。

  随着虚拟环境的创建和激活,我们现在可以安装网站所需的库瓶。我们将遵循共同的协议安装烧瓶,即创建一个“ unignts.txt”文件。txt“文件本身并不特别;它是一个文本文件,列出了应用程序所需的库,但这是开发人员通常使用的协议,使管理人员更容易依靠大量库。

  在以下练习中,我们将使用其他几个库,包括请求(用于调用Translator服务)和Python-Dotenv(用于管理密钥)。尽管我们现在不需要这些库,但现在的安装将使此过程更加容易。

  该命令下载库及其依赖项。

  如果PIP不是最新版本,则可以收到错误消息。根据错误消息中的说明进行实施升级。此模块不需要升级。

  如果一切顺利,您现在已经建立了开发环境!

  烧瓶是一个开源Web“ Micro -Frame”。创建者使用术语“ Micro -Framework”时,他们会参考Web框架执行Web框架所需的任务,但不包括高级别的功能,或其他应用程序必须遵循正常工作的具体要求。这种方法使烧瓶非常灵活,并且非常适合现有的后端或API(例如认知服务)的前端!

  当使用任何框架创建Web应用程序时,我们都需要了解几个核心概念:路由,方法和模板。在编写代码之前,让我们首先理解这些概念。

  使用Web应用程序时,用户可以通过浏览不同的统一资源定位器(即,URL)来显示他们正在寻找的操作或信息。用户可以直接输入地址(例如),或者您可以选择一个链接或包含包含的链接或一个按钮相应的URL.ON e -Commerce网站,您可能会看到以下URL:

  作为开发人员,我们实际上不必担心URL的第一部分或域(在此示例中“ Adventure-works.com”)。您的应用程序将根据 / start的域名背后的任何内容执行操作。域名背后的部分称为“路由”。

  路由是操作的路径。类似于移动应用程序中的按钮,路由表示用户想要执行的操作。我们将在Web应用程序中注册不同的路由以响应应用程序支持的各种请求。

  在我们的应用程序中,我们提供了一个函数来指示如何响应特定的路由请求。Routing是函数的映射。当我们考虑编写一般代码时,此概念相对直观。当我们要执行特定操作时,函数称为。您的用户将执行完全相同的操作!但是,他们将通过访问完成此操作。

  创建Web应用程序时,有许多可用的方法,但是两种最常见的方法(我们只注意的两种)是“ get”和“ post”。GET通常表明用户正在请求信息,并且帖子说用户需要向我们发送信息并接收响应。

  使用GET和POST进行的通用应用程序流在我们周围进行。我们创建了一个应用程序,用户要在其中注册电子邮件列表:

  或者,正如您所期望的那样,用户不会直接指示您要使用的谓词,并且谓词由应用程序控制。从总体上讲,如果用户键入URL或直接选择到URL的链接,请使用到访问页面。用户选择表单的按钮时,通常会通过帖子发送信息。

  超文本标签语言(HTML)是一种用于构造浏览器上显示的信息的语言,而级别格式表(CSS)用于管理样式和布局。创建应用程序时,大多数HTML是静态的,这意味着该应用语言不会改变。但是,为了使页面掩码动态,我们需要能够通过编程将信息放入HTML页面中。几乎每个网络框架都可以通过模板满足此需求。

  借助模板,您可以编写核心HTML(或模板)并指示动态信息。该位置最常见的语法可能是。Flask的模板引擎Jinja将使用此语法。

  HTML副本

  在上一个示例中,我们使用了(head)的html,其中包含我们要显示的文本。指示在“欢迎”之后显示一个可变名称。通过这种语法,我们可以使用现有技能来编写HTML和注入动态信息。如所须。

  我们将以迭代方式创建应用程序,重点关注创建过程中的特定概念。首先,我们将为应用程序创建一个登录页面,该页面将显示用户想要使用的表单。

  通常,烧瓶应用程序的入口点是一个名为“ app.py”的文件。我们将遵循本协议并创建应用程序的核心。我们将执行以下步骤:

  新文件创建名为“ app.py”的新文件

  导入语句包含正确的参考,这是所有烧瓶应用程序的核心。当我们要返回到HTML时,我们将使用它一段时间。

  这将是我们的核心应用程序。在下一步中,我们将使用它来注册路由。

  该应用程序将使用路由 - /。此路由有时称为“默认”或“索引”路由,因为当用户不提供任何内容或服务器名称时,使用该路由。

  将以下代码添加到“ app.py”的末尾

  Python副本

  通过,我们可以指定要创建的路由。路径将是 /,这是默认路由。我们指出,这将用于get。如果 /接收get请求,烧瓶将自动调用在下面直接声明的功能修饰符以及在我们的示例中。在文本中,我们表示它将返回一个称为“ index.html”的HTML模板。

  烧瓶的模板引擎Jinja非常关注HTML。因此,我们可以使用所有现有的HTML技能和工具。我们将使用启动页面使其更加美丽。从启动开始,我们将在HTML上使用不同的CSS类。熟悉启动时,您可以忽略这些课程并专注于HTML(这是实际的部分)。

  需要在一个称为“模板”的文件夹中创建Flask的模板,该文件夹非常合适。LET创建一个文件夹,必要的文件并添加HTML。

  上述HTML中的核心组件是用户想要翻译的文本,用户将用来指示目标语言的删除列表()。如果您想添加更多语言,则可以参考支持语言列表并获取其他选项。将属性设置为语言代码,例如“ PL”表示抛光。

  创建初始站点后,应该对其进行测试!我们将使用Visual Studio代码中的集成终端使此过程更容易。

  您应该看到显示表单。

  尽管使用机器学习或人工智能解决方案越来越普遍,但仍然很难从头开始创建。方法使我们能够专注于代码,而不是复杂的建模。

  Azure提供了一组称为认知服务的产品/服务,包括计算机视觉,语音传输文本,文本到语音和文本翻译服务。您可以通过软件开发工具包(SDK)访问这些服务,或者您可以致电通过调用其他HTTP终端点相同的方式。

  要使用认知服务,您需要一个Azure帐户。如果您不熟悉Azure,则可以免费注册,其中包含$ 200的免费限额(在前30天内)。如果您是学生,则可以注册对于学生的Azure来说,其中包含100美元(截止日期为12个月)和一系列其他免费服务。

  翻译服务(认知服务的一部分)将在数十种语言之间翻译。该服务可以在一个呼叫中自动检测源语言并将其转换为多种目标语言。调用翻译服务的方式与呼叫相同任何其他HTTP终端。使用Python时,通常通过“请求”库使用此操作。这是我们返回代码时将使用的库。

  要调用Translator服务(或任何其他认知服务),我们将需要一个钥匙。每次访问服务时,都使用此密钥。密钥与密码类似。服务。如果我们使用付费版本,我们可能会有很大的成本!

  进行开发时,可以使用一个好的解决方案来保护键,也就是说,使用dotenv时,名为Python-dotenv的库通常称为dotenv。我们将创建一个称为“ .env”的文件,其中包含键/值对我们不想成为源代码的一部分。当我们将代码推向github时,它将确保该文件已在gitignore文件中列出,以免公开发布。

  获取Translator服务的钥匙。如前所述,我们需要一个Azure帐户。我们将使用Azure Portal创建键并将其存储在应用程序的“ .env”文件中。

  当我们准备好在Azure上创建的后端转换器服务和存储变量时,我们将重点介绍如何在应用程序中添加必要的逻辑和模板以翻译文本。我们将执行以下步骤:

  app.py包含应用程序的逻辑。我们将在要使用的库中添加几个项目,然后向用户添加新的响应途径。

  当我们稍后调用Translator服务时,最高行将被介绍给使用的库。我们还导入并执行该函数,该功能将从.env加载值。

  代码添加的注释,指示正在执行的步骤。从总体上讲,我们的代码将执行以下操作:

  具体来说,我们需要阅读第一个结果,然后阅读集合(第一次翻译),然后阅读它。这是通过致电以下方式完成的:

  让我们为“结果”页面创建HTML模板。

  您会注意到我们有访问与和平,所有这些都用作命名参数。此操作通知烧瓶以呈现内容为纯文本。我们还需要使用链接来返回默认页面。尽管从技术上讲,我们可以输入原始页面的路径,但使用将告知烧瓶的路径以读取该功能以读取函数。如果我们重新安排网站,则通过链接生成的URL始终有效。

  返回到Visual Studio代码中的集成终端(CTRL-RE-RE-OPEN IT在Mac上)。如果网站当前正在运行,我们需要停止并重新启动该站点,以便应用程序读取环境变量。