微软和谷歌的大神教你如何写提示词!!!
Design2Code项目:从设计到代码的无缝转换
近日,斯坦福大学、佐治亚理工学院、微软和谷歌DeepMind的研究人员联合推出了一项名为Design2Code的项目。这一创新项目探讨了多模态大语言模型在前端开发中的潜力应用。简单来说,它利用先进的模型(如GPT-4V)将设计草图直接转换为HTML和CSS代码,让设计想法迅速变为现实。
🌐项目主页:https://salt-nlp.github.io/Design2Code
如何生成高质量的代码?
在论文中,研究人员分享了他们使用提示词生成代码的经验。初次尝试时,效果并不理想,但通过优化提示词,再使用GPT-4V生成网页代码,质量得到了显著提升。
第一次生成时所使用的提示词:
You are an expert web developer who specializes in HTML and CSS. A user will provide you with a screenshot of a webpage.
You need to return a single html file that uses HTML and CSS to reproduce the given website. Include all CSS code in the HTML file itself.
If it involves any images, use “rick.jpg” as the placeholder. Some images on the webpage are replaced with a blue rectangle as the placeholder, use “rick.jpg” for those as well.
Do not hallucinate any dependencies to external files. You do not need to include JavaScript scripts for dynamic interactions.
Pay attention to things like size, text, position, and color of all the elements, as well as the overall layout. Respond with the content of the HTML+CSS file.
中文
您是一位精通HTML和CSS的网页开发专家。当用户为你提供一个网页的截图,你需要基于这个截图创建一个HTML文件,确保使用HTML和CSS来尽可能准确地重现该网页的设计。
请将所有CSS样式代码直接嵌入到HTML文件中。如果原始网页使用了图片,且图片无法直接获取,请用“rick.jpg”作为占位图像。若网页上有些图像被蓝色矩形替代,您也应使用“rick.jpg”作为这些区域的占位图像。
请注意,你的HTML文件中不应依赖任何外部文件。此外,由于本次任务不涉及动态交互,您无需使用JavaScript编写动态交互脚本。在创建HTML文件时,请确保网页上所有元素的大小、文本、位置、颜色以及整体布局都与截图中的设计相匹配。
最后,请提供完整的HTML文件内容,其中包含了所有必要的CSS样式代码。
增强提示词:
You are an expert web developer who specializes in HTML and CSS. I have an HTML file for implementing a webpage but it has some missing or wrong elements that are different from the original webpage. The current
implementation I have is: [generated code from text-augmented prompting]. I will provide the reference webpage that I want to build as well as the rendered webpage of the current implementation. I also provide you all
the texts that I want to include in the webpage here: [extracted texts from the original webpage]. Please compare the two webpages and refer to the provided text elements to be included, and revise the original HTML
implementation to make it look exactly like the reference webpage. Make sure the code is syntactically correct and can render into a well-formed webpage. You can use “rick.jpg” as the placeholder image file.
Pay attention to things like size, text, position, and color of all the elements, as well as the overall layout. Respond directly with the content of the new revised and improved HTML file without any extra explanations.
中文:
你是一位擅长HTML和CSS的专家级网页开发人员。你需要修改一个已有的HTML文件,但其中有一些缺失或错误的元素,与原始网页不一致。我目前的实现是:[从文本增强的提示中生成的代码]。我将提供我想构建的参考网页的截图以及当前实现的渲染结果。
此外,我还提供了我想在网页中包含的所有文本:[从原始网页中提取的文本]。
请对比这两个网页,并参考提供的文本元素进行修改,对原始的HTML实现进行修改,使其与参考网页完全一致。请确保HTML代码语法正确,能够呈现出一个结构完整的网页。你可以使用”rick.jpg”作为图片占位符。
在修改时,请特别注意网页所有元素的大小、文本内容、位置布局和颜色,以及整体布局。
完成后,请直接回复经过修订和改进后的HTML文件内容,无需附加任何额外的解释。
这为我们提供了宝贵的启示:如何更有效地编写提示词,从而在其他领域也能应用这一技术。
Design2Code的主要功能
- 设计理解:模型能接收设计图或截图,理解其中的元素、布局和设计意图。
- 代码生成:根据理解的信息,自动生成HTML、CSS等前端代码。
- 优化与调整:生成的代码可根据需求进一步优化,满足功能和性能要求。
项目特点
- 多模态理解:同时处理视觉和文本输入,适用于复杂设计。
- 自动化评估:使用自动指标衡量生成代码与参考网页的相似度。
- 开源模型:提供开源的Design2Code-18B模型,性能与商业API相当。
应用场景广泛
- 快速原型开发:设计师快速验证设计方案的可行性。
- 代码生成辅助:前端开发者减少手动编写工作量。
- 自动化测试:测试前端代码的稳定性和兼容性。
未来的研究方向
- 开发更有效的提示技巧,特别是处理复杂设计时。
- 使用真实网页内容训练模型,探索数据清洗和优化方法。
- 扩展输入方式,如使用Figma框架或手绘草图。
- 从静态网页扩展到动态网页,考虑交互功能评估。
这一创新项目为前端开发带来了革命性的变革。通过多模态大语言模型的应用,设计与代码之间的鸿沟正在逐步缩小。无论是设计师还是开发者,都将从这一项目中受益,共同推动网页开发的进步。