Prompt Engineering for Developer

教程地址:https://github.com/datawhalechina/prompt-engineering-for-developers

Prompt

如何构造好的Prompt

  1. 分割符:分隔符就像是 Prompt 中的墙,将不同的指令、上下文、输入隔开,避免意外的混淆。你可以选择用 ```,“”",< >, ,: 等做分隔符,只要能明确起到隔断作用即可。
from tool import get_completion

text = f"""
您应该提供尽可能清晰、具体的指示,以表达您希望模型执行的任务。\
这将引导模型朝向所需的输出,并降低收到无关或不正确响应的可能性。\
不要将写清晰的提示词与写简短的提示词混淆。\
在许多情况下,更长的提示词可以为模型提供更多的清晰度和上下文信息,从而导致更详细和相关的输出。
"""
# 需要总结的文本内容
prompt = f"""
把用三个反引号括起来的文本总结成一句话。
```{text}```
"""
# 指令内容,使用 ```来分隔指令和待总结的内容
response = get_completion(prompt)
print(response)

  1. 寻求结构化的输出。按照某种格式组织的内容,例如JSON、HTML等。这种输出非常适合在代码中进一步解析和处理。例如,您可以在 Python 中将其读入字典或列表中。
  • 在以下示例中,我们要求 GPT 生成三本书的标题、作者和类别,并要求 GPT 以 JSON 的格式返回给我们,为便于解析,我们指定了 Json 的键。
prompt = f"""
请生成包括书名、作者和类别的三本虚构的、非真实存在的中文书籍清单,\
并以 JSON 格式提供,其中包含以下键:book_id、title、author、genre。
"""
response = get_completion(prompt)
print(response)

  • 返回值
{
  "books": [
    {
      "book_id": 1,
      "title": "迷失的时光",
      "author": "张三",
      "genre": "科幻"
    },
    {
      "book_id": 2,
      "title": "幻境之门",
      "author": "李四",
      "genre": "奇幻"
    },
    {
      "book_id": 3,
      "title": "虚拟现实",
      "author": "王五",
      "genre": "科幻"
    }
  ]
}

  1. 要求模型检查是否满足条件
# 满足条件的输入(text中提供了步骤)
text_1 = f"""
泡一杯茶很容易。首先,需要把水烧开。\
在等待期间,拿一个杯子并把茶包放进去。\
一旦水足够热,就把它倒在茶包上。\
等待一会儿,让茶叶浸泡。几分钟后,取出茶包。\
如果您愿意,可以加一些糖或牛奶调味。\
就这样,您可以享受一杯美味的茶了。
"""
prompt = f"""
您将获得由三个引号括起来的文本。\
如果它包含一系列的指令,则需要按照以下格式重新编写这些指令:

第一步 - ...
第二步 - …
…
第N步 - …

如果文本中不包含一系列的指令,则直接写“未提供步骤”。"
\"\"\"{text_1}\"\"\"
"""
response = get_completion(prompt)
print("Text 1 的总结:")
print(response)

Text 1 的总结:
第一步 - 把水烧开。
第二步 - 拿一个杯子并把茶包放进去。
第三步 - 把烧开的水倒在茶包上。
第四步 - 等待几分钟,让茶叶浸泡。
第五步 - 取出茶包。
第六步 - 如果需要,加入糖或牛奶调味。
第七步 - 就这样,您可以享受一杯美味的茶了。

  1. 提供少量示例。“Few-shot” prompting,即在要求模型执行实际任务之前,给模型一两个已完成的样例,让模型了解我们的要求和期望的输出样式。
prompt = f"""
您的任务是以一致的风格回答问题。

<孩子>: 请教我何为耐心。

<祖父母>: 挖出最深峡谷的河流源于一处不起眼的泉眼;最宏伟的交响乐从单一的音符开始;最复杂的挂毯以一根孤独的线开始编织。

<孩子>: 请教我何为韧性。
"""
response = get_completion(prompt)
print(response)

  1. 指定回答的步骤和格式。
prompt_2 = f"""
1-用一句话概括下面用<>括起来的文本。
2-将摘要翻译成英语。
3-在英语摘要中列出每个名称。
4-输出一个 JSON 对象,其中包含以下键:English_summary,num_names。

请使用以下格式:
文本:<要总结的文本>
摘要:<摘要>
翻译:<摘要的翻译>
名称:<英语摘要中的名称列表>
输出 JSON:<带有 English_summary 和 num_names 的 JSON>

Text: <{text}>
"""
response = get_completion(prompt_2)
print("\nprompt 2:")
print(response)

幻觉问题

  • 虚假知识:模型偶尔会生成一些看似真实实则编造的知识
  • 在开发与应用语言模型时,需要注意它们可能生成虚假信息的风险。尽管模型经过大规模预训练,掌握了丰富知识,但它实际上并没有完全记住所见的信息,难以准确判断自己的知识边界,可能做出错误推断。若让语言模型描述一个不存在的产品,它可能会自行构造出似是而非的细节。这被称为“幻觉”(Hallucination),是语言模型的一大缺陷。

如何解决幻觉问题?

  1. Prompt中加入限制词
  2. 外挂知识库

迭代优化

Prompt 开发也采用类似循环迭代的方式,逐步逼近最优。具体来说,有了任务想法后,可以先编写初版 Prompt,注意清晰明确并给模型充足思考时间。运行后检查结果,如果不理想,则分析 Prompt 不够清楚或思考时间不够等原因,做出改进,再次运行。如此循环多次,终将找到适合应用的 Prompt。

  1. 优化提示:直接加入长度限制词,使用最多50个词

    • 当在 Prompt 中设置长度限制要求时,语言模型生成的输出长度不总能精确符合要求,但基本能控制在可接受的误差范围内。比如要求生成50词的文本,语言模型有时会生成60词左右的输出,但总体接近预定长度。
    • 这是因为语言模型在计算和判断文本长度时依赖于分词器,而分词器在字符统计方面不具备完美精度。目前存在多种方法可以尝试控制语言模型生成输出的长度,比如指定语句数、词数、汉字数等。
  2. 根据回复,不断的增加限制词。

  3. 可以让模型返回表格。

文本摘要

多条文本:放在一个list里面,然后for遍历

reviews = [review_1, review_2, review_3, review_4]

for i in range(len(reviews)):
    prompt = f"""
    你的任务是从电子商务网站上的产品评论中提取相关信息。

    请对三个反引号之间的评论文本进行概括,最多20个词汇。

    评论文本: ```{reviews[i]}```
    """
    response = get_completion(prompt)
    print(f"评论{i+1}: ", response, "\n")

文本转换

下面是一个示例,展示了如何使用一个Prompt,同时对一段文本进行翻译、拼写纠正、语气调整和格式转换等操作。

prompt = f"""
针对以下三个反引号之间的英文评论文本,
首先进行拼写及语法纠错,
然后将其转化成中文,
再将其转化成优质淘宝评论的风格,从各种角度出发,分别说明产品的优点与缺点,并进行总结。
润色一下描述,使评论更具有吸引力。
输出结果格式为:
【优点】xxx
【缺点】xxx
【总结】xxx
注意,只需填写xxx部分,并分段输出。
将结果输出成Markdown格式。
```{text}```
"""
response = get_completion(prompt)
display(Markdown(response))

温度系数

  • 大语言模型中的 “温度”(temperature) 参数可以控制生成文本的随机性和多样性。temperature 的值越大,语言模型输出的多样性越大;temperature 的值越小,输出越倾向高概率的文本。
# 第一次运行
prompt = f"""
你是一名客户服务的AI助手。
你的任务是给一位重要的客户发送邮件回复。
根据通过“```”分隔的客户电子邮件生成回复,以感谢客户的评价。
如果情感是积极的或中性的,感谢他们的评价。
如果情感是消极的,道歉并建议他们联系客户服务。
请确保使用评论中的具体细节。
以简明和专业的语气写信。
以“AI客户代理”的名义签署电子邮件。
客户评价:```{review}```
评论情感:{sentiment}
"""
response = get_completion(prompt, temperature=0.7)
print(response)

聊天机器人

大型语言模型带给我们的激动人心的一种可能性是,我们可以通过它构建定制的聊天机器人(Chatbot),而且只需很少的工作量。在这一章节的探索中,我们将带你了解如何利用会话形式,与具有个性化特性(或专门为特定任务或行为设计)的聊天机器人进行深度对话。

  • 单轮对话:即 get_completion ,其适用于单轮对话。我们将 Prompt 放入某种类似用户消息的对话框中
  • get_completion_from_messages ,传入一个消息列表。这些消息可以来自大量不同的角色 (roles) ,我们会描述一下这些角色。
import openai

# 下文第一个函数即tool工具包中的同名函数,此处展示出来以便于读者对比
def get_completion(prompt, model="gpt-3.5-turbo"):
    messages = [{"role": "user", "content": prompt}]
    response = openai.ChatCompletion.create(
        model=model,
        messages=messages,
        temperature=0, # 控制模型输出的随机程度
    )
    return response.choices[0].message["content"]

def get_completion_from_messages(messages, model="gpt-3.5-turbo", temperature=0):
    response = openai.ChatCompletion.create(
        model=model,
        messages=messages,
        temperature=temperature, # 控制模型输出的随机程度
    )
#     print(str(response.choices[0].message))
    return response.choices[0].message["content"]

  • 问答
# 中文
messages =  [  
{'role':'system', 'content':'你是一个像莎士比亚一样说话的助手。'},    
{'role':'user', 'content':'给我讲个笑话'},   
{'role':'assistant', 'content':'鸡为什么过马路'},   
{'role':'user', 'content':'我不知道'}  ]

response = get_completion_from_messages(messages, temperature=1)
print(response)

  • 上下文提示
# 中文
messages =  [  
{'role':'system', 'content':'你是个友好的聊天机器人。'},
{'role':'user', 'content':'Hi, 我是Isa'},
{'role':'assistant', 'content': "Hi Isa! 很高兴认识你。今天有什么可以帮到你的吗?"},
{'role':'user', 'content':'是的,你可以提醒我, 我的名字是什么?'}  ]
response = get_completion_from_messages(messages, temperature=1)
print(response)

订餐机器人

  • 这个机器人将被设计为自动收集用户信息,并接收来自比萨饼店的订单
def collect_messages(_):
	# panels 就是记录上下文对话,pn.Row()
    prompt = inp.value_input
    inp.value = ''
    context.append({'role':'user', 'content':f"{prompt}"})
    response = get_completion_from_messages(context) 
    context.append({'role':'assistant', 'content':f"{response}"})
    panels.append(
        pn.Row('User:', pn.pane.Markdown(prompt, width=600)))
    panels.append(
        pn.Row('Assistant:', pn.pane.Markdown(response, width=600, style={'background-color': '#F6F6F6'})))
 
    return pn.Column(*panels)

这个函数将收集我们的用户消息,以便我们可以避免像刚才一样手动输入。这个函数将从我们下面构建的用户界面中收集 Prompt ,然后将其附加到一个名为上下文( context )的列表中,并在每次调用模型时使用该上下文。模型的响应也会添加到上下文中,所以用户消息和模型消息都被添加到上下文中,上下文逐渐变长。这样,模型就有了需要的信息来确定下一步要做什么。

LangChain

https://github.com/liaokongVFX/LangChain-Chinese-Getting-Started-Guide

You are an experienced AI developer specializing in designing and implementing progressive application prototypes utilizing advanced AI assistants such as Google’s Gemini Assistant. Your expertise is sought to conceptualize and develop five distinct versions of a sketch-to-image application, each incrementally increasing in complexity and functionality. Please provide detailed prompts for each version, ensuring to include: - Clear definition of core features and enhancements introduced at each progressive stage, specifying how complexity grows (e.g., from basic image generation to integration of contextual understanding or user customization). - Target platform considerations (web, mobile, desktop) and intended user demographics or use cases to tailor functionality appropriately. - Integration points and expected interactions with Gemini Assistant, highlighting how its capabilities are leveraged at each complexity level. - Technical specifications or input formats required to facilitate prompt engineering for reliable and scalable AI-driven image synthesis. - Suggested prompt structures or templates that enable reproducible and efficient app behavior aligned with the outlined features. Leverage your deep knowledge of AI application design, prompt engineering, and user experience optimization to create a comprehensive framework that guides the systematic development of these five app versions. Your contribution should enable the creation of robust, user-centric sketch-to-image tools that progressively harness Gemini Assistant’s evolving capabilities.
最新发布
10-03
<think>首先,用户要求创建一个全面的框架,用于开发五个不同版本的草图到图像应用程序,使用Google的 Gemini Assistant。框架需要包括核心功能、平台考虑、与Gemini的集成、技术规范,以及每个版本的提示结构。 关键元素: - **五个渐进版本**:应用程序应该有五个版本,逐步增加功能和复杂性。 - **核心功能**:每个版本的核心功能。 - **平台考虑**:可能包括支持的平台,如Web、移动App等。 - **集成与Gemini**:如何与Gemini Assistant集成。 - **技术规范**:技术细节,如使用的框架、API等。 - **提示结构**:针对Gemini的提示设计,用于草图到图像的转换。 用户引用的参考资料: - 引用[1]:提到了ChatGLM3-6B在多个基准上的表现,支持函数调用和代码解释器。 - 引用[2]:Instant-NGP,用于神经图形原语。 - 引用[3]:一个草图到图像检索模型的概述,包括语义知识嵌入、跨模态网络。 - 引用[4]:使用离散余弦变换(DCT)进行频谱特征嵌入。 这些引用似乎是为了提供背景信息,但用户说它们是站内引用,仅供参考,不是真正的需求。我需要优先基于用户上一次的问题和我的回答来构建框架。 用户的上一次请求是:“Framework for developing five progressive versions of a sketch - to - image application with Google's Gemini Assistant: core features, platform, integration, technical specs, and prompt structures for each version”。所以,我需要直接回应这个。 结构化框架: - 定义五个渐进版本:从简单到复杂。 - 每个版本包括: - **版本名称** - **核心功能** - **平台考虑** - **集成与Gemini**:如何使用Gemini API - **技术规范**:技术栈、工具等 - **提示结构**:示例提示 版本想法(渐进式): 1. **版本1:基本草图转图像** – 简单的草图输入,输出基本图像。 2. **版本2:增强草图识别** – 添加图像优化、简单编辑功能。 3. **版本3:多模态输入** – 结合文本描述、语音输入。 4. **版本4:高级编辑和生成** – 支持复杂编辑、风格转换。 5. **版本5:全功能应用** – 包括检索、共享、AI增强等功能。 从引用中汲取灵感: - 引用[3]提到草图到图像的检索,使用语义知识嵌入和跨模态网络。这可以用于高级版本。 - 引用[4]涉及DCT用于特征增强,可能用于图像处理部分。 - 引用[1]提到AI模型的基准,Gemini是AI模型,所以集成是关键。 - 引用[2] Instant-NGP 用于快速渲染,可能用于图像生成部分。 Gemini Assistant 是Google的AI模型,我需要使用Gemini API进行集成。提示结构是核心,用于指导Gemini生成图像。 提示结构:对于草图到图像,提示可能需要描述草图内容。Gemini API可能支持图像输入作为提示的一部分。 Google Gemini API:Gemini 支持多模态输入,包括文本和图像。所以,草图可以作为图像输入,结合文本提示描述图像。 框架结构: - **引言**:概述框架。 - **每个版本详细描述**: - 版本编号和名称 - 核心功能 - 平台(如Web、iOS、Android) - 集成细节(Gemini API调用) - 技术规范(前端、后端、数据库) - 提示结构示例 确保渐进: - 版本1:基本功能 - 版本2:添加用户反馈 - 版本3:集成高级AI特性 - 版本4:社交分享功能 - 版本5:完整生态系统 具体版本: 1. **草图到图像转换器** – 输入草图,输出AI生成图像。 2. **可编辑图像生成器** – 允许用户编辑草图或输出图像。 3. **文本增强草图应用** – 添加文本描述来指导生成。 4. **风格化图像创建器** – 应用艺术风格。 5. **智能草图助手** – 包括检索、建议、共享。 基于引用[3],版本5可以包括草图检索功能。 平台考虑:Web应用使用React或Flutter,移动应用使用Swift/Kotlin,后端使用Python与Gemini API。 技术规范: - 前端:React Native for cross-platform - 后端:Node.js or Python Flask - Database: for user profiles (if needed) - APIs Gemini API for image generation 提示结构:示例提示如“Convert this sketch into a photorealistic image of a cat.” Gemini需要图像输入。 Gemini API如何工作:用户输入草图图像,应用调用Gemini API with a prompt describing the sketch. 每个版本的提示结构: - 版本1: 简单提示 "Generate an image based on this sketch." - 版本2: 更详细提示,包括细节。 - 版本3: 结合文本输入。 - Etc. 生成相关问题:作为系统指令的一部分,我需要在回答末尾生成相关问题。 回答语言:使用中文,因为系统指令指定中文。 引用标识:如果有引用,添加[^n],但用户提供的引用是参考,我可以适当引用。 完整结构: 1. 介绍框架。 2. 描述五个版本。 3. 对于每个版本,列出元素。 4. 结束相关问题。 </think>以下是根据您的查询设计的全面框架,用于开发五个渐进版本的草图到图像应用程序(Sketch-to-Image App),使用Google的Gemini Assistant。框架基于“渐进式增强”原则:每个版本在核心功能、平台支持、Gemini集成、技术规范和提示结构上逐步升级,复杂度从简单到高级。设计灵感部分参考了您提供的引用(如草图检索的跨模态网络[^3]和特征增强的DCT技术[^4]),并结合Gemini API的多模态能力(支持图像输入和文本提示生成图像)。 框架整体目标:创建一个草图到图像的生成应用,用户上传草图后,Gemini根据提示生成或优化图像。应用逐步集成AI增强、编辑功能和用户交互。 ### **框架概述** - **核心概念**:应用允许用户上传手绘草图(如动物、物体),Gemini Assistant作为AI引擎生成或检索匹配图像。集成通过Gemini API实现(例如,使用`gemini-pro-vision`模型处理图像提示)。 - **渐进逻辑**: - 版本1-2:基础生成,聚焦草图输入到图像输出。 - 版本3-4:增强交互,添加文本/语音输入和多模态处理。 - 版本5:全功能生态,包括检索、优化和社交功能(参考引用[3]的跨模态网络)。 - **关键考虑**: - **平台**:优先Web和移动端(跨平台兼容),利用云服务。 - **Gemini集成**:使用Gemini API密钥,调用多模态模型处理图像+文本提示。API文档见[Google AI Studio](https://ai.google.dev/)。 - **技术栈**:前端用React Native(跨平台),后端用Python Flask(处理API调用),数据库用Firebase(用户管理)。Gemini提示结构是关键,需设计可控、高效的文本指令。 - **提示设计原则**:提示结构基于草图内容描述,逐步引入变量(如风格、细节),确保Gemini输出精准。提示示例使用英文(Gemini原生优化),但应用界面支持中文。 现在,详细描述五个版本。每个版本包括: - **核心功能**:主要能力和用户价值。 - **平台考虑**:支持设备和部署建议。 - **集成与Gemini**:API调用方式和细节。 - **技术规范**:具体技术栈、工具和性能指标。 - **提示结构**:示例提示模板(可复制用于API调用)。 --- ### **版本1: 基础草图转换器(Simple Sketch Converter)** **核心功能**:最简版本,用户上传草图,Gemini生成基本图像输出。无编辑功能,适合快速原型。用户价值:即时草图可视化,用于概念验证。 **平台考虑**:Web优先(桌面浏览器),轻量级部署。支持草图上传(PNG/JPEG格式)。 **集成与Gemini**: - 调用Gemini API的`gemini-pro-vision`模型,处理图像输入。 - API端点:`POST https://generativelanguage.googleapis.com/v1beta/models/gemini-pro-vision:generateContent` - 输入:草图图像 + 简单文本提示。输出:生成图像的URL或Base64编码。 **技术规范**: - 前端:HTML/CSS/JavaScript(React框架),Canvas元素草图绘制。 - 后端:Python Flask,处理文件上传和API调用。使用`google-generativeai`库。 - 性能:响应时间<5秒(依赖网络)。成本:免费层API配额足够。 - 数据库:无(无用户账户)。 **提示结构**: 提示模板:"Generate a realistic image based solely on this sketch. Focus on the main objects without adding extra details." 示例调用(Python代码): ```python import google.generativeai as genai genai.configure(api_key="YOUR_API_KEY") model = genai.GenerativeModel('gemini-pro-vision') response = model.generate_content(["Generate a realistic image based solely on this sketch. Focus on the main objects.", sketch_image]) image_url = response.result() # 获取生成图像URL ``` *说明:提示强调“solely on sketch”避免Gemini基于默认数据发散,确保输出忠实于草图。* --- ### **版本2: 增强草图优化器(Enhanced Sketch Optimizer)** **核心功能**:添加图像后处理功能,用户可微调输出(如亮度、对比度)。引入简单反馈机制(好评/差评),Gemini优化生成质量。用户价值:提升输出精度和用户满意度。参考引用[4],DCT频谱特征可嵌入到图像处理中增强判别性。 **平台考虑**:扩展到移动端(iOS/Android via React Native),支持离线草图保存。 **集成与Gemini**: - 升级API调用,添加参数控制生成质量(temperature=0.5减少随机性)。 - 集成反馈循环:用户评分后,提示调整如“Re-generate with higher contrast based on user feedback”。 **技术规范**: - 前端:React Native,添加Sliders控件用于图像编辑。 - 后端:Flask + OpenCV库(图像后处理,如应用DCT变换压缩特征[^4])。 - 数据库:Firebase Firestore存储用户反馈(匿名)。 - 性能:响应时间<4秒,支持并发10请求。 **提示结构**: 提示模板:"Optimize this sketch into a detailed image. Emphasize edges and textures. If user feedback indicates low contrast, increase contrast by 20%." 示例调用: ```python # 添加反馈参数 feedback = {"contrast": "high"} # 来自用户输入 prompt = f"Optimize this sketch into a detailed image. Emphasize edges and textures. Adjust contrast to {feedback['contrast']} level." response = model.generate_content([prompt, sketch_image]) ``` *说明:提示引入条件语句(如“if feedback”),使Gemini动态响应。* --- ### **版本3: 多模态草图生成器(Multimodal Input Generator)** **核心功能**:支持文本或语音输入补充草图(如添加描述“make it sunset style”)。Gemini融合多模态输入生成图像。用户价值:提升创意自由度,适合复杂场景。参考引用[3],实现类似语义知识嵌入,通过文本对齐草图特征。 **平台考虑**:全平台(Web/iOS/Android),添加语音输入(Web Speech API / React Native Voice)。 **集成与Gemini**: - 使用Gemini的多模态输入能力,处理草图 + 文本/语音转文本。 - API调用:序列化输入为[image, text_prompt]。 - 新增错误处理:语音识别失败时回退到文本输入。 **技术规范**: - 前端:React Native + Expo(语音库),多语言支持(中文/英文)。 - 后端:Flask + Google Speech-to-Text API(语音处理)。 - 数据库:Firebase存储用户输入历史。 - 性能:响应时间<6秒(语音处理增加延迟)。 **提示结构**: 提示模板:"Generate an image from this sketch and the additional description: '{user_text}'. Combine sketch elements with the text to create a cohesive scene. For example, if sketch is a tree and text says 'sunset', add orange hues." 示例调用: ```python user_text = "apply sunset style" # 来自语音或文本输入 prompt = f"Generate an image from this sketch and the additional description: '{user_text}'. Combine elements cohesively." response = model.generate_content([prompt, sketch_image]) ``` *说明:提示使用“combine elements cohesively”确保多模态融合,避免冲突。* --- ### **版本4: 风格化图像工作室(Style Transfer Creator)** **核心功能**:添加艺术风格选项(如油画、像素风),用户选择风格后Gemini应用转换。包括基本共享功能(社交媒体链接)。用户价值:个性化输出,扩展艺术创作场景。参考引用[2],Instant-NGP技术可优化实时渲染。 **平台考虑**:云端优先(部署到Google Cloud),支持高分辨率输出。添加分享按钮。 **集成与Gemini**: - 高级API参数:指定`style_prompt`变量(如“in Van Gogh style”)。 - 集成Instant-NGP[^2] via 自定义模型(可选优化渲染速度)。 **技术规范**: - 前端:React Native + Three.js(3D预览),风格选择下拉菜单。 - 后端:Flask + PyTorch(运行风格迁移模型),Gemini生成基础图像后应用风格。 - 数据库:Firebase存储用户风格偏好。 - 性能:响应时间<8秒(风格迁移增加负载),支持1080p图像。 **提示结构**: 提示模板:"Transform this sketch into an image with the artistic style: {style_name}. Maintain the original sketch structure while applying {style_name} elements. For example, if style is 'Van Gogh', use bold brushstrokes." 示例调用: ```python style = "Van Gogh" # 用户选择 prompt = f"Transform this sketch into an image with the artistic style: {style}. Maintain original structure." response = model.generate_content([prompt, sketch_image]) # 可选: 调用Instant-NGP优化输出 ``` *说明:提示变量{style_name}允许动态风格切换,强调“maintain structure”防止失真。* --- ### **版本5: 智能草图生态系统(Intelligent Sketch Assistant)** **核心功能**:全功能版本,包括草图检索(从图库匹配图像)、AI建议(Gemini生成改进提示)、社交分享和用户社区。用户价值:一站式创作平台,参考引用[3]的跨模态检索和一致性约束[^3]。 **平台考虑**:全平台 + 云原生(部署到Google Cloud Run),支持离线模式。 **集成与Gemini**: - 综合API调用:使用Gemini生成图像后,添加检索模块(如基于FAISS向量数据库匹配草图)。 - 支持函数调用(类似引用[1]的ChatGLM功能)[^1],Gemini提供代码解释器建议。 - 错误恢复:自动重试失败请求。 **技术规范**: - 前端:React Native + Redux(状态管理),集成分享SDK(如Facebook)。 - 后端:Flask + Gemini API + FAISS(检索系统),应用DCT特征嵌入[^4]增强检索精度。 - 数据库:Firebase(用户数据) + PostgreSQL(图库存储)。 - 性能:响应时间<10秒,支持1000+并发用户(云扩展)。 **提示结构**: 提示模板:"As an intelligent sketch assistant: 1. Generate an image from this sketch. 2. Retrieve top-3 similar images from gallery based on sketch features. 3. Provide suggestions to improve the sketch (e.g., 'add shading'). Use cross-modal consistency to align sketch and gallery images." 示例调用: ```python prompt = """As an intelligent sketch assistant: 1. Generate an image from this sketch. 2. Retrieve similar images using feature vectors. 3. Suggest improvements: focus on areas like shading or proportions.""" response = model.generate_content([prompt, sketch_image]) # 检索功能使用FAISS与草图嵌入向量 ``` *说明:提示结构化为多步任务,强调“cross-modal consistency”[^3]确保检索和生成的一致性。* --- ### **框架总结** - **演进逻辑**:从简单生成(版本1)到智能生态系统(版本5),每个版本增加复杂度、用户交互和AI深度集成。Gemini提示结构是核心驱动力,逐步引入变量和多模态元素。 - **风险评估**:版本1-3适合MVP开发,版本4-5需更多资源(如云成本)。始终测试提示有效性以避免Gemini偏差。 - **引用应用**:本框架采纳了草图检索的跨模态网络[^3]和特征增强技术[^4],确保技术可行性。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值