AI-NEWS · 2024年 11月 27日

AI反向编译Prompt技巧揭示

总结

该代码定义了一个用于处理用户操作的系统,特别是针对文本文档的不同版本进行修改和查询。以下是对其主要部分的简要介绍:

枚举(Enums)

  1. UserActionType:包括 ASKEDITCOMMENTCREATETEXTDOC
  2. UserMessageType:包括 ASKCHATGPTACCEPTCOMMENTFULLSCREENSUBMITACCELERATOR
  3. SelectionType:包括 ENTIREDOCUMENTSELECTEDTEXTSURROUNDINGCONTEXT
  4. TextdocType:包含文档类型,例如 DOCUMENT 及其他可能的类型。

接口(Interfaces)

  • SourceRange:定义了文本选择范围。
  • TextdocVersion:定义了一个文档版本。
  • AcceleratorMetadataSelectionMetadata:分别定义了加速器元数据和选择元数据。

函数

主要函数 handleUserOperation

处理用户操作,包括获取文本内容、选择范围、生成提示并发送请求到API。

辅助函数

  1. generatePrompt
    • 根据不同的action(例如编辑或评论),调用相应的子函数如generateAskPromptgenerateEditPrompt
  2. describeSelectionInContext, extractSurroundingContext:处理选定文本及其上下文。
  3. additionalInstructions, generateUpdateInstructions:生成额外的指令,尤其适用于文档修改。

发送请求

  • 函数sendPromptRequest用于发送生成的提示(prompt)到API进行进一步处理。

示例调用流程

  1. handleUserOperation()接收用户操作参数和当前文本版本。
  2. 根据提供的选择范围(sourceRange)提取选定的文本及其上下文。
  3. 通过generatePrompt()函数,根据指定的操作类型生成相应的提示消息。
  4. 调用sendPromptRequest()将生成的提示发送到API进行处理。

整个系统设计为了支持对文档内容的不同操作,并确保能够准确地确定用户想要修改的具体部分或范围。这可以通过合理利用文本选择、上下文提取以及生成针对性强的API请求来实现。

Source:https://baoyu.io/blog/ai/reverse-engineering-openai-canvas-prompt-generation