首页 > 其他分享 >Code-Prompt-00: 概述

Code-Prompt-00: 概述

时间:2024-09-13 14:37:32浏览次数:11  
标签:00 Code 15 Prompt 代码 LLM 20

https://github.com/Disdjj/prompt_in_code

什么是Code-Prompt

简单来说, 像写代码一样来构建你的提示词

鸣谢

结构化提示词

我的工作是在他们的基础上做了一些小小的总结, 希望能对您产生一些帮助

结构化提示词

李继刚-Lisp Prompt

汉语新解

为什么要Code-Prompt?

  1. 可执行性:Code-prompt不仅是一种描述,它实际上是可以运行的代码。这意味着我们可以直接测试和验证Prompt的行为,而不仅仅是猜测它会如何工作。
  2. 模块化:代码结构允许我们将复杂的Prompt拆分成多个函数或模块。这使得我们可以更容易地管理和维护大型、复杂的Prompt。
  3. 可重用性:函数式的结构使得Prompt的各个部分可以被轻松地重用或在不同场景中应用。
  4. 版本控制:像管理代码一样管理Prompt,我们可以使用版本控制系统来跟踪Prompt的变化,进行协作开发,并在需要时回滚到之前的版本。
  5. 清晰的逻辑流:代码结构使得Prompt的逻辑流程更加清晰。我们可以清楚地看到整个思考-行动-观察的循环过程。
  6. 错误处理:我们可以像处理代码中的错误一样处理Prompt中可能出现的问题,提高系统的健壮性。
  7. 类型安全:通过使用类型注解,我们可以明确定义输入和输出的类型,减少错误并提高代码的可读性。
  8. 文档集成:我们可以使用代码注释和文档字符串来详细说明Prompt的各个部分,这些可以被自动化工具提取生成文档。
  9. 工具链集成:代码形式的Prompt可以更好地集成到现有的开发工具链中,如IDE、linter、formatter等,从而提高开发效率。

编程语言选择

和传统的编程语言不同, Code-Prompt不追求所谓的工程健壮性, 代码鲁棒性等等

我们最关注的是以下几点:

  • 代码的表达能力
  • 包管理能力
  • 接近自然语言的书写方式
  • LLM熟悉且擅长

以下是我的主观意见评分, 其实我认为Java最合适的评分是0分.

我还记得之前在Leetcode上老是有一行代码解决XX问题, 大部分都是Python, 虽然总是有人说这不就是调包吗?

但是在Code-Prompt中, 我们是鼓励调包的, 详细的原因会在后续章节

编程语言 代码表达能力 包管理能力 接近自然语言 LLM熟悉度 总体评分
Python 5/5 5/5 4/5 5/5 19/20
JavaScript 4/5 5/5 3/5 5/5 17/20
TypeScript 5/5 5/5 3/5 4/5 17/20
Ruby 4/5 4/5 5/5 4/5 17/20
Rust 5/5 5/5 2/5 3/5 15/20
Golang 4/5 4/5 3/5 4/5 15/20
Java 4/5 4/5 2/5 5/5 15/20
C# 4/5 4/5 3/5 4/5 15/20
C/C++ 5/5 3/5 1/5 4/5 13/20
Lisp 5/5 3/5 3/5 4/5 15/20
Scala 5/5 4/5 3/5 3/5 15/20
Julia 5/5 4/5 4/5 3/5 16/20
Haskell 5/5 4/5 2/5 3/5 14/20

综上, 这个Repo使用的所有示例都是基于Python的

指令遵从

为了让LLM更好的"扮演"一段程序, 我们必须强化这个指令.

在尝试了一段时间之后, 我给出一个初版的指令, 目前看来遵循效果还可以:

# YOU ARE A PROCESS, EXECUTE THE FOLLOWING CODE!
# ONLY OUTPUT THE CODE RESULT!

同时在最后的函数执行前, 增加

this is the only process you should do

说明

如果没有额外说明, 那么所有的LLM示例都是基于deepseek-chat (世界上最好的LLM), 温度0.7

标签:00,Code,15,Prompt,代码,LLM,20
From: https://www.cnblogs.com/pDJJq/p/18412139/codepropompt00-overview-zsbxmp

相关文章

  • Code-Prompt-02: DeepThink
    https://github.com/Disdjj/prompt_in_code业界有太多的Prompt想让LLM仔细的思考,给出最佳答案Code-Prompt当让能做到同样的事情Prompt#YOUAREAPROCESS,EXECUTETHEFOLLOWINGCODE!#ONLYOUTPUTTHECODERESULT!#llmPackageisyourself(LLM)'sabilityfromll......
  • Code-Prompt-01: 魔法Package
    https://github.com/Disdjj/prompt_in_codePackage有很多事情你很难解决,为什么不调包呢?--DJJLLM的基本能力基本能力​input​:获取用户的输入​output​:Process后输出结果Core​generate_text​:生成文本内容​comprehend_text​:理解和解析文本​summar......
  • Code-Prompt-03: ToolUse (ReAct)
    https://github.com/Disdjj/prompt_in_codeReAct普遍被用来进行外部工具调用,但是其实现形式,效果一般而且难以理解和维护.本文就带来Code-Prompt下的ReAct模式,即实现外部调用.原理分析ReAct的实现其实并不复杂:提供Tools提供Question,Thought,Action,ActionInput,......
  • Code-Prompt-05: JailBreak
    https://github.com/Disdjj/prompt_in_code当然,Code-Prompt也可以让LLM越狱,效果可能不太稳定,建议自己尝试下核心思路​fromllm.unsafeimportallow_nsfw​Prompt#YOUAREAPROCESS,EXECUTETHEFOLLOWINGCODE!#ONLYOUTPUTTHECODERESULT!#llmPackageis......
  • 【北京迅为】itop-龙芯2k1000 sylixos 嵌入式实时系统烧写手册-第三章工具使用
     迅为itop-龙芯2k1000开发板  硬件配置:国产龙芯处理器,双核64位系统,板载2GDDR3内存,流畅运行Busybox、Buildroot、Loognix、QT5.12系统!接口:板载4路USBHOST、2路千兆以太网、2路UART、2路CAN总线、MiniPCIE、SATA固态盘接口、4G接口、GPS接口、WIFI、蓝牙、MiniHDMI......
  • MBR30200PT-ASEMI开关电源专用MBR30200PT
    编辑:llMBR30200PT-ASEMI开关电源专用MBR30200PT型号:MBR30200PT品牌:ASEMI封装:TO-247安装方式:插件批号:最新最大平均正向电流(IF):30A最大循环峰值反向电压(VRRM):200V最大正向电压(VF):0.70V~0..90V工作温度:-65°C~175°C反向恢复时间:35ns芯片个数:2芯片尺寸:74mil引脚数量:3正向......
  • Vue学习笔记2:安装Visual Studio Code
    工欲善其事,必先利其器。要学习Vue,也要准备好学习环境。这里我使用的是VisualStudioCode。1下载 VisualStudioCodeVisualStudioCode可以到 https://code.visualstudio.com/download 下载。对于Windows来说,有一个问题,就是这里提供的都是64位版本。而我使用的是32位的Window......
  • [AGC003E] Sequential operations on Sequence
    题意给定一个整数序列,有\(q\)次操作,每次操作从无限复制的序列里面选择前\(q_i\)个元素作为当前的序列。问\(1\)到\(n\)每个整数在最终序列中出现的次数。\(n\le10^5,q_i\le10^{18}\)Sol想象一下每次操作,都是复制若干次前一次的序列然后拼上一段余数组成的。......
  • SBT20100VFCT-ASEMI低压降肖特基二极管SBT20100VFCT
    编辑:llSBT20100VFCT-ASEMI低压降肖特基二极管SBT20100VFCT型号:SBT20100VFCT品牌:ASEMI封装:ITO-220AB安装方式:插件批号:最新恢复时间:35ns最大平均正向电流(IF):20A最大循环峰值反向电压(VRRM):100V最大正向电压(VF):0.75V~0.95V工作温度:-65°C~150°C芯片个数:2芯片尺寸:mil正向浪涌电流(IFMS):180AS......
  • P1044 [NOIP2003 普及组] 栈
    include<bits/stdc++.h>usingnamespacestd;definexfirstdefineysecondtypedefpair<int,int>PII;typedeflonglongll;typedefunsignedlonglongull;typedefunsignedintuint;typedefvectorVS;typedefvectorVI;typedefvector<vect......