跳至内容

Tabnine:带演示项目的指南

学习如何使用 Tabnine 和 Google 的 Nano Banana 模型构建一款 AI 图像编辑器。
已更新 2026年10月6日  · 12分钟 阅读

使用 AI 探索

ChatGPTClaudePerplexity

当您被样板代码或细枝末节的语法困住时,写代码会变得枯燥乏味。尤其是在尝试新 AI 模型、只想专注于搭建功能时,这种摩擦会被放大。Tabnine 通过在编辑器内提供 AI 代码补全,帮助您化解这种减速。

在本文中,我将一步步讲解如何在 Visual Studio Code(VS Code)中使用 Tabnine,基于 Google 最新的图像生成模型 Nano Banana 创建一款 AI 图像编辑器。文章结尾,我们将得到一个可运行的 Python 应用,允许用户通过提示词生成并编辑图像。

如果您想及时了解最新的 Google 图像生成模型,建议阅读我们的 Nano Banana 2 指南。

我们在教程中使用 Tabnine 构建的应用程序截图。

什么是 Tabnine?

Tabnine 是一款由 AI 驱动的编码助手,类似于 GitHub Copilot 和 Cursor。它可在 VS Code、PyCharm、Jupyter 等主流编辑器中使用。

Tabnine 的一些关键特性包括:

- Jira 集成:Tabnine 可以连接 Jira,这是一款流行的软件工程项目管理平台。这让工作管理更轻松,也便于 Tabnine 跟踪流水线中的任务。

- 自定义命令:Tabnine 内置多种命令,例如 "Explain code" 或 "Fix code"。它也允许用户定义基于提示词的自定义命令。

- 自定义行为:Tabnine 允许您配置一个提示,来引导 AI 模型的回答方式。比如,如果您有明确的编码规范,可以提供给它,以确保生成的代码遵循这些规范。

- 智能自动补全:不仅补全变量名,还能建议整行或整块代码。

- 上下文感知:Tabnine 会适应您的项目结构和编码风格。

- 支持多种 AI 模型:Tabnine 支持最流行的 AI 模型,方便您选择使用哪一个。

- 团队学习:在企业版方案中,它可以从您团队的私有代码库中学习,提供更贴合公司模式的建议。

Tabnine 安装与设置

开始之前,我们需要创建一个 Tabnine 账户并订阅他们的某个套餐。他们提供 14 天试用,您可以免费体验。试用期之后,Tabnine 每月费用为 9 美元。

创建好 Tabnine 账户后,打开 VS Code。若尚未安装 VS Code,可从此处安装。打开扩展选项卡,搜索 "tabnine" 以找到官方扩展。

VS Code 市场界面中的 Tabnine 扩展列表,显示搜索结果和安装选项。

安装扩展后,系统会提示我们登录。随后即可在左侧菜单栏访问 Tabnine(本截图中的最后一个选项)。

Visual Studio Code 侧边栏,显示文件资源管理器、搜索、源代码管理、调试器、扩展和 Tabnine 图标。

浏览 Tabnine 的界面

在构建我们的 AI 图像编辑器之前,先快速了解 Tabnine 的主要元素。

打开 Tabnine 后,会看到一个 AI 聊天界面:

VS Code 中的 Tabnine 界面,展示与代码相关的辅助、扩展和代码片段选项,菜单中选中 Gemini 2.5 Pro。

顶部是模型选择器,可以选择要使用的模型。本教程我将沿用默认选项Gemini 2.5 Pro。

Tabnine 中的 AI 模型选择界面,包含 Claude 3.5 Sonnet、Claude 3.7 Sonnet、Claude 4 Sonnet、Gemini 2.0 Flash、Gemini 2.5 Pro、GPT-4o 和 Tabnine Protected 等选项,强调性能优化与隐私特性。

底部可以定义上下文,也就是回答时希望 AI 模型可见的内容。

VS Code 中 Tabnine 聊天界面,带有命令、代码片段、当前文件和工作区范围设置选项。

默认情况下,上下文包含当前文件和工作区(项目)。我们可以添加其他内容,比如终端,这在遇到错误时非常有用,便于让模型知晓。我们还可以使用 "@" 字符并输入希望添加到上下文中的函数名,来提供特定的代码片段。

在汉堡菜单中,我们可以配置 Tabnine:

Tabnine 设置界面,展示集成、响应长度、自定义行为、自定义命令、聊天补全和产品改进等选项。

其中两个值得注意的设置是自定义行为和自定义命令。在自定义行为部分,我们可以设置一个提示,引导模型在生成代码时的表现。这在希望代码遵循特定规范时很有用。

VS Code 中 Tabnine 自定义聊天行为设置界面,包含用于定义指令以定制 AI 响应的文本输入框,并展示德语分步指导的示例提示。

命令部分允许定义可在聊天界面通过 /<command-name> 执行的自定义命令。命令本质上是为执行特定动作而设计的提示。这是节省时间、避免反复输入相同提示的好方法。

Tabnine 定义新自定义命令的界面,包含命令名称、描述和提示模板输入字段,并提供保存或取消选项。

用 Tabnine 进行“vibe-coding”打造 AI 图像编辑器

本节将带您构建一个 Python 应用,使用 Google 最新的图像生成模型 Nano Banana 来编辑图像。用户可以用提示词生成图像,或将现有图像与提示词结合进行编辑。

我的目标是看看是否能以 vibe-coding 的方式构建此应用,也就是完全通过从零开始的提示词来搭建。

本教程中生成的所有代码可在这个 GitHub 仓库中找到。

创建基础界面

首先,我想创建一个基础界面,让用户可以从电脑选择图像并输入提示词。我新建了一个文件夹,并在该文件夹中打开 VS Code。我没有创建任何文件。这是我的第一个提示:

Tabnine 中的图形用户界面设计提示,建议创建可从电脑选择图像的界面。

事后我才意识到,我忘了说明自己要构建的是 Python 应用。幸运的是,AI 模型恰好也做了这个假设。它对我的提示进行了响应,解释了将要执行的命令和编写的代码。

要应用这些更改,我们可以逐条应用,或点击屏幕底部的 "Apply All" 按钮。请注意,其中一些更改涉及命令执行。在这些情况下,命令会安装必要的 Python 包,并创建存放代码的文件和文件夹。

这是我运行其创建脚本后界面的样子:

AI 图像编辑界面,文本输入中显示图像文件路径,底部有“Select Images”按钮。

顶部显示所有已选图像的列表,并提供按钮打开文件选择器。用户可以选择一个或多个文件,所选文件会被列出。不过,当选择新文件时,旧列表会被覆盖,于是我要求将新文件追加到列表中,而不是移除旧文件。

接着,我希望改进界面,用缩略图而非路径来展示图像:

编码界面中的 UI 提示,建议显示缩略图而不是图像路径,并提供使用 Pillow 库进行图像处理的代码方案。

这是结果:

深色主题背景的 AI 图像编辑器界面,显示图像缩略图,底部有“Select Images”按钮,支持用户文件选择交互。

另一个重要功能是可以方便地移除图像:

Tabnine 界面中的 UI 提示,包含启用从选择中移除图像的命令。

按照这个提示,它修改了代码,使得我们在缩略图上点击右键时会弹出菜单,允许删除图像。我希望实现这种交互,因此提出了该改动请求:

AI 编码界面中的提示文本,用于创建带有删除选项的右键弹出菜单。

在这次修改后尝试应用程序时,删除图像不再生效。我怀疑是因为我使用的是 Mac,但当时没有说明。我想看看它能否自己判断出来。

聊天界面显示用户反馈右键功能无法使用,随后回复称这是 tkinter 常见的跨平台问题。

它处理得很好,我可以右键单击图像来删除它:

基础界面的最后一步是为提示词添加一个文本框。

来自 AI 编码助手的 UI 提示,建议在图像预览下方添加名为“Prompt”的多行文本输入。

至此,基础界面已完成。我们可以选择图像并输入提示词。不过,我们还无法生成图像——这将在下一节中实现。

集成 Nano Banana

为保持代码的条理性,我让它创建一个新的 Python 脚本,其中包含一个使用 Google 生成式 AI API 及其最新图像模型来生成图像的函数。

创建 Python 脚本以使用 Google 的 Nano Banana 模型生成图像的提示,并通过 .env 文件管理 API 密钥。

它创建了新脚本和 .env 文件。该文件用于存放连接 Google API 所需的 API 密钥。如果您跟着操作,需要先在此处创建 API 密钥,并将其放入 .env 文件中。

随后,我让它在界面中添加一个新按钮,用于调用图像生成函数。按钮添加好了,但点击后出现错误。因此,在让它修复错误前,我先将终端添加进上下文。

VS Code 中 Tabnine 界面,显示已选范围:当前文件、工作区和终端,并提供添加或重置范围的选项。

脚本执行期间 Tabnine 界面显示的错误信息。

它对文件做了一些更新,但错误依旧。我继续让它修复,但没有成功。它开始声称 AI 模型不存在,并试图将代码引向我知道并不正确的方向。

为解决这个问题,我只好手动修复代码。我前往Gemini 官方网站,从那里复制并改造了示例代码。

这也是我认为即便在vibe coding 时也需要具备一定编码基础的原因之一。我们常会遇到 AI 模型无法修复的问题,懂编程很重要,这样才能判断模型说得不对并加以修正。这类工具应始终用于提速,而非完全替代。

不过,即便这段代码需要手写,Tabnine 的自动补全仍很有帮助。比如,当我想把选中的图像路径转换为图像对象提供给模型时,只需开始输入意图,就得到了正确的代码:

展示 Tabnine 自动补全功能的代码片段。

我们也能在函数名上方看到,Tabnine 提供编辑、测试、修复、解释和文档化函数的工具。比如我使用了文档化功能来为代码写注释,它会先显示计划修改的差异,之后我可以选择接受或拒绝:

最终结果

应用程序现已可用。我们来尝试为某个人物创建一个带来自其他图像配件的手办形象:

结果如下:

使用 Tabnine 编写测试

在项目中编写自动化测试非常重要。Tabnine 的一项功能就是帮助我们编写这些测试。

该功能可在 "Test" 选项卡中使用,或通过点击函数定义上方的 "Test" 选项来使用。这样,Tabnine 会为该函数创建测试计划。

VS Code 中的 Tabnine 界面,显示新建测试计划,可选择查看现有测试文件或创建新文件,同时展示 Python 代码编辑功能。

测试计划由若干场景组成,每个场景描述函数的预期行为。以下是 Tabnine 为我们的函数识别的一些场景:

测试计划界面,显示所选模块与测试文件路径,并给出 AI 图像生成器的建议测试用例。

要为某个特定场景生成测试,我们只需点击它。随后会生成该场景对应的测试函数,我们可以将其整合进测试套件。

当我应用这些更改时,测试文件只包含了测试函数,其他内容都缺失,例如导入语句和外层测试类。我不得不回到 "Chat" 选项卡,请它把测试实现补完整。之后又遇到一个错误,因为它创建的文件名不正确。与之前一样,我告知它发生了错误,它就修复了。现在测试可以成功运行。

后来我再添加其他测试时,一切运行良好。

终端输出截图,显示一次 Python unittest 执行。包含错误信息:“An error occurred during Gemini API call: Prompt cannot be empty.” 测试在 0.001 秒内运行了 1 个测试,尽管出现提示词错误,结果仍为 “OK”。

结语

Tabnine 通过与主流代码编辑器的便捷集成,展现了其作为快速开发强大工具的潜力。其 AI 辅助编码能力能显著提速,让开发者将精力更多投入到创新而非重复性任务。

然而,我尝试完全靠 vibe-coding 构建应用的过程,也凸显了扎实编码基础的重要性。若对 AI 生成代码不加验证地盲目依赖,可能带来复杂问题,让开发者难以及时理解并处理错误。

总体而言,Tabnine 表现高效,但往往让人感觉背后的 AI 模型才是“主力”,与 GitHub Copilot 等工具相仿。虽然 Tabnine 的确实用,这次经历再次说明:传统的编码知识不可替代,它对于确保复杂软件应用的高效、可持续开发至关重要。


François Aubry's photo
Author
François Aubry
LinkedIn
全栈工程师,CheapGPT 创始人。我一直热爱教学。从学生时代起,我就积极寻找机会为同学提供辅导与帮助。这份热情促使我攻读博士学位,并在此期间担任助教,以支持我的学术追求。那些年里,我在传统课堂环境中收获了极大的成就感,既建立联系也促进学习。随着在线学习平台的兴起,我也看到了数字教育的变革潜力。事实上,我曾参与我们大学一款此类平台的建设。我致力于将传统教学理念与创新的数字方法相融合。我的热情在于打造既有吸引力、信息量充足,又能让当代学习者轻松获取的课程。
主题
人工智能
大语言模型

通过这些课程学习 AI!

课程

使用 Windsurf 的软件开发

1 小时 30 分钟
3.1K
借助 Windsurf 提升编码效率,这款 AI 驱动的 IDE 可帮助你更快构建、调试和部署。
查看详情Right Arrow
开始课程
查看更多Right Arrow