“Mesop”google新出的一个开源Python UI框架插图

使用不到10行代码构建一个AI前端页面。

这是谷歌工程师在新发布的 Mesop(尽管不是正式版本)中提出的大胆主张。Mesop 是一个基于 Python 的用户界面框架,可以快速开发网络应用程序。

它是什么?这个最新推出的免费开源工具对我们开发者又多大帮助?

Mesop 是什么?

Mesop 在许多方面是将多个现有想法重新组合,并打包成一个统一的 UI 框架,专为 Python 开发者设计。如果你是一个开发者,一直在为快速制作一个像样的 AI 前端界面而苦恼,那么 Mesop 可能正是你所需要的。

以下是 Mesop 的亮点:

  1. 你可以超快速地构建一个基本的网络应用
  1. 它提供了现成的组件来构建你的应用
  1. 它能很好地与你现有的 Python 代码配合使用
  1. 它为你处理了许多复杂的事务
  1. 你可以用它制作简单或复杂的应用

Mesop非常适合用于机器学习或人工智能的项目前端,即使没有前端经验的开发人员能够快速构建Web应用程序。

示例1:聊天Web应用演示
这个界面非常适合开发人员创建AI聊天机器人:

import random
import time

import mesop as me
import mesop.labs as mel
@me.page(
  security_policy=me.SecurityPolicy(
    allowed_iframe_parents=["https://google.github.io"]
  ),
  path="/chat",
  title="AI聊天窗口",
)
def page():
  mel.chat(transform, title="AI聊天窗口", bot_user="AI小助理")
def transform(input: str, history: list[mel.ChatMessage]):
  for line in random.sample(LINES, random.randint(3, len(LINES) - 1)):
    time.sleep(0.3)
    yield line + " "
LINES = [
  "Mesop是一个基于Python的UI框架,旨在简化对没有前端经验的工程师进行Web UI开发。",
  "它利用了Angular web框架和Angular Material组件的强大功能,可以快速构建Web演示和内部工具。",
  "热重载,以便浏览器自动重新加载并保存状态",
  "部署很快很方便",
  "灵活且可组合",
  "Javascript/CSS/HTML即可构建自定义 UI",
  "具有强类型安全性的丰富 IDE 支持",
]

编译启动

mesop main.py

这种简单而又有效的设置大大减少了通常所需的代码。在代码编译后,最终的结果如下所示:

“Mesop”google新出的一个开源Python UI框架插图1

不用在意问答,这只是一个演示而已。

这是非常有用的,因为通常使用C#或Javascript编写这样的用户界面会超过100行代码。

示例2:文本生成图片

下面这个实例用于文字生成图片

import mesop as me
import mesop.labs as mel

@me.page(
  security_policy=me.SecurityPolicy(
    allowed_iframe_parents=["https://google.github.io"]
  ),
  path="/text_to_image",
  title="Text to Image Example",
)
def app():
  mel.text_to_image(
    generate_image,
    title="Text to Image Example",
  )
def generate_image(prompt: str):
  return "https://images.unsplash.com/photo-1614624532983-4ce03382d63d?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w0MzY2NTJ8MHwxfHNlYXJjaHwxfHxzZXR1cHxlbnwwfHx8fDE3MTk1NjcxOTF8MA&ixlib=rb-4.0.3&q=80&w=1080"

这是生成的页面截图

“Mesop”google新出的一个开源Python UI框架插图2

是不是很简单!现在你所需要的就是将图像模型或API访问集成到后端里

示例3:文本生成文本

你也可以使用以下代码构建一个简单的文本生成文本的UI界面:

import mesop as me
import mesop.labs as mel
@me.page(
  security_policy=me.SecurityPolicy(
    allowed_iframe_parents=["https://google.github.io"]
  ),
  path="/text_to_text",
  title="文本生成文本",
)
def app():
  mel.text_to_text(
    upper_case_stream,
    title="文本生成文本示例",
  )
def upper_case_stream(s: str):
  return "输出: " + s

“Mesop”google新出的一个开源Python UI框架插图3

探索Mesop的两种途径

Mesop是一个令人兴奋的新工具,您有两种方式可以体验它的功能:

  1. 通过Google Colab在线尝试
    Google Colab提供了一个便捷的在线环境,让您无需本地安装即可快速上手Mesop。这种方法特别适合初学者或那些希望快速体验Mesop功能的用户。
  1. 在本地计算机上安装运行
    对于那些希望更深入使用Mesop或需要在自己的项目中集成它的用户,在本地计算机上安装是一个理想的选择。这种方法给予您更多的控制权和自由度。

问题

Mesop是谷歌的官方产品吗?

不,Mesop不是谷歌的官方产品。Mesop是由一小群谷歌工程师作为20%项目维护的,同时也接受更广泛社区的贡献。

Mesop与StreamLit相比如何?

综合来看,Streamlit作为一个成熟的工具,拥有广泛的用户基础、丰富的功能和良好的社区支持,特别适合数据科学项目和快速原型开发。而Mesop作为新兴工具,虽然可能在某些web应用开发场景中有其独特优势,但仍在发展阶段。选择使用哪个工具最终取决于开发者的具体需求、编程经验和项目类型。建议有兴趣的开发者亲自尝试这两种工具,以便更好地了解它们各自的优势和适用场景。

结语

Mesop作为一个新兴的工具,为Python开发者提供了一个有趣的选择。虽然对于Python新手来说可能有些挑战,但对于有经验的开发者而言,它无疑是一个快速构建web应用的强大工具。

作为一个开源项目,Mesop的未来发展将很大程度上依赖于社区的支持和贡献。如果它能获得广泛的认可和使用,不难想象它有朝一日能与Streamlit、Gradio和ChainLit等知名工具并驾齐驱,成为Python开发者的首选工具之一。

无论你是想要快速验证想法、为团队开发工具,还是创建演示项目,Mesop都值得一试。我们鼓励你亲自体验这个新工具,并分享你的看法。毕竟,正是通过使用者的反馈和建议,Mesop才能不断完善,最终成为一个更加优秀的开发工具。

让我们一起期待Mesop的未来发展,也许它将为Python web应用开发带来新的可能性。