使用不到10行代码构建一个AI前端页面。
这是谷歌工程师在新发布的 Mesop(尽管不是正式版本)中提出的大胆主张。Mesop 是一个基于 Python 的用户界面框架,可以快速开发网络应用程序。
它是什么?这个最新推出的免费开源工具对我们开发者又多大帮助?
Mesop 是什么?
Mesop 在许多方面是将多个现有想法重新组合,并打包成一个统一的 UI 框架,专为 Python 开发者设计。如果你是一个开发者,一直在为快速制作一个像样的 AI 前端界面而苦恼,那么 Mesop 可能正是你所需要的。
以下是 Mesop 的亮点:
- 你可以超快速地构建一个基本的网络应用
- 它提供了现成的组件来构建你的应用
- 它能很好地与你现有的 Python 代码配合使用
- 它为你处理了许多复杂的事务
- 你可以用它制作简单或复杂的应用
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
这种简单而又有效的设置大大减少了通常所需的代码。在代码编译后,最终的结果如下所示:
不用在意问答,这只是一个演示而已。
这是非常有用的,因为通常使用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"
这是生成的页面截图
是不是很简单!现在你所需要的就是将图像模型或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的两种途径
Mesop是一个令人兴奋的新工具,您有两种方式可以体验它的功能:
- 通过Google Colab在线尝试
Google Colab提供了一个便捷的在线环境,让您无需本地安装即可快速上手Mesop。这种方法特别适合初学者或那些希望快速体验Mesop功能的用户。
- 在本地计算机上安装运行
对于那些希望更深入使用Mesop或需要在自己的项目中集成它的用户,在本地计算机上安装是一个理想的选择。这种方法给予您更多的控制权和自由度。
问题
Mesop是谷歌的官方产品吗?
不,Mesop不是谷歌的官方产品。Mesop是由一小群谷歌工程师作为20%项目维护的,同时也接受更广泛社区的贡献。
Mesop与StreamLit相比如何?
综合来看,Streamlit作为一个成熟的工具,拥有广泛的用户基础、丰富的功能和良好的社区支持,特别适合数据科学项目和快速原型开发。而Mesop作为新兴工具,虽然可能在某些web应用开发场景中有其独特优势,但仍在发展阶段。选择使用哪个工具最终取决于开发者的具体需求、编程经验和项目类型。建议有兴趣的开发者亲自尝试这两种工具,以便更好地了解它们各自的优势和适用场景。
结语
Mesop作为一个新兴的工具,为Python开发者提供了一个有趣的选择。虽然对于Python新手来说可能有些挑战,但对于有经验的开发者而言,它无疑是一个快速构建web应用的强大工具。
作为一个开源项目,Mesop的未来发展将很大程度上依赖于社区的支持和贡献。如果它能获得广泛的认可和使用,不难想象它有朝一日能与Streamlit、Gradio和ChainLit等知名工具并驾齐驱,成为Python开发者的首选工具之一。
无论你是想要快速验证想法、为团队开发工具,还是创建演示项目,Mesop都值得一试。我们鼓励你亲自体验这个新工具,并分享你的看法。毕竟,正是通过使用者的反馈和建议,Mesop才能不断完善,最终成为一个更加优秀的开发工具。
让我们一起期待Mesop的未来发展,也许它将为Python web应用开发带来新的可能性。