paint-brush
人工智能 100 天,第 12 天:如何快速演示您的新一代人工智能实验以获得反馈经过@sindamnataraj
641 讀數
641 讀數

人工智能 100 天,第 12 天:如何快速演示您的新一代人工智能实验以获得反馈

经过 Nataraj5m2024/03/01
Read on Terminal Reader

太長; 讀書

在这篇文章中,我们将探讨如何轻松地将人工智能实验转换为可以获取反馈的演示。
featured image - 人工智能 100 天,第 12 天:如何快速演示您的新一代人工智能实验以获得反馈
Nataraj HackerNoon profile picture

嘿大家! 我是 Nataraj和您一样,我也对人工智能的最新进展着迷。意识到我需要跟上所有正在发生的发展,我决定踏上个人学习之旅,于是人工智能100天诞生了!通过这个系列,我将学习法学硕士,并通过我的博客文章分享想法、实验、观点、趋势和学习。您可以在此处的HackerNoon 或此处的我的个人网站上跟踪整个旅程。在今天的文章中,我们将寻求在 GPT-4 的帮助下构建语义内核。


如果您正在阅读《人工智能 100 天》系列,我正在写一个共同主题,您会注意到大多数帖子都有某种实验或演示。在帖子的末尾,我还列出了我探索的技术可能实现的想法。因此,下一个显而易见的问题是,是否有一种方法可以轻松地将这些实验包装成可演示的产品并与人们分享并获得反馈?


在这篇文章中,我们将探讨如何轻松地将人工智能实验转换为可以获取反馈的演示。


假设您想要创建一个接受文本并返回摘要的 AI 应用程序。您想与人们分享并获得反馈。如果您必须为此应用程序创建一个 Web 应用程序,则必须对 UI 进行编码,以确保您找到托管解决方案并弄清楚整个堆栈的内容。当然,已经有启动的 Web 应用程序堆栈可以更快地完成任务,但您的用例不需要那么复杂。相反,我们将使用 Gradio 创建一个类似界面的 Web 应用程序,而无需为此应用程序编写任何代码。

什么是Gradio?

Gradio 是一个 Python 库,可让您轻松创建 AI 应用程序的演示,并以 Web 应用程序的形式与受众共享。

为了了解如何使用 Gradio 轻松演示 gen AI 实验,我们将构建一个摘要 Web 应用程序,您可以在其中向应用程序提供长文本,应用程序将输出该长文本的摘要。

第 1 步:设置

与 Gradio 一起,我们将使用拥抱面部应用程序,因此请确保您将拥抱面部 api 密钥放在手边。首先,让我们从 .env 文件加载 API 密钥并添加所需的 python 模块。

 import os import io from IPython.display import Image, display, HTML #from PIL import Image import base64 import openai env_path = '../.env' from dotenv import load_dotenv, find_dotenv _ = load_dotenv(find_dotenv(env_path)) # read local .env file hf_api_key = os.environ['HF_API_KEY']

第2步:定义汇总函数

我们想要实现的核心逻辑是将长文本发送到模型并获取文本摘要。我们将定义一个函数,它将长文本作为输入,并调用一个名为distilbart的拥抱面部模型。这是执行此操作的函数。

 def get_completion(inputs, parameters=None, ENDPOINT_URL=os.environ['HF_API_SUMMARY_BASE']): headers = { "Authorization": f"Bearer {hf_api_key}", "Content-Type": "application/json" } data = { "inputs": inputs } if parameters is not None: data.update({"parameters": parameters}) response = requests.request("POST", ENDPOINT_URL, headers=headers, data=json.dumps(data) ) return json.loads(response.content.decode("utf-8"))

第 3 步:使用 Gradio 演示摘要应用程序

与Gradio交互的主要方式是通过接口函数。我们需要传递一个函数及其相应的输入和输出。请注意,我们为此目的定义了一个名为summarise的新函数。该函数接受一个输入,该输入将是要汇总的长文本,该函数将调用步骤 2 中的get_completion函数来获取输入文本的摘要并将其作为输出返回。在最后一行中,我们要求 gradio 启动该应用程序的演示。通过提供share=True ,我们告诉 gradio 创建一个可以共享给其他人的公共链接,并提供本地 Web 主机应在其上运行的 server_port。在下面的代码中,我们还自定义了输入和输出字段的标题、描述和标签,您将在输出中注意到它们。

 import gradio as gr def summarize(input): output = get_completion(input) return output[0]['summary_text'] gr.close_all() demo = gr.Interface(fn=summarize, inputs=[gr.Textbox(label="Text to summarize", lines=6)], outputs=[gr.Textbox(label="Result", lines=3)], title="Text summarization with distilbart-cnn", description="Summarize any text using the `shleifer/distilbart-cnn-12-6` model under the hood!" ) demo.launch(share=True, server_port=int(os.environ['PORT1']))

运行此命令后,浏览器中的输出如下所示:http://127.0.0.1:<您的端口号>。

音频输出


使用 Gradio 演示项目就是这么简单。这里的美妙之处在于,作为开发人员,您不必提出 UI 堆栈,也不必经历学习该堆栈并将其投入生产的复杂性。 Gradio 会为您做到这一点。


Gradio 提供不同的输入和输出类型,您可以使用它们创建更复杂、更有趣的演示,并可以轻松共享。我们将在接下来的帖子中探索更多使用 Gradio 和其他工具的演示。


这就是人工智能 100 天中的第 12 天。


我写了一篇名为“高于平均水平”的时事通讯,其中讨论了大型科技领域正在发生的一切背后的二阶见解。如果您从事科技行业并且不想成为平庸的人,请订阅它


TwitterLinkedInHackerNoon上关注我,了解 AI 100 天的最新动态。如果您从事技术工作,您可能有兴趣加入我的技术专业人士社区