3  借助 AI 写代码

我平时主要使用 ChatGPT 和豆包,前者擅长代码生成和调试,后者在文字编排和翻译方面表现出色。有些时候,我会将同一个任务分配给这两个工具,并让他们交叉验证和补充彼此的结果,以提高准确性和可靠性。

在编写 .ipynb 文件时,我经常使用 VScode 插件 github copilot,它能够根据上下文提供代码建议和补全,并对我选中部分的代码或文字进行智能修改。

copilot 最核心的功能根据用户编写的提示词,自动生成相应的代码片段或文本内容。详见:

连玉君,2025,Empirical Research with AI

3.1 主要工具

  • ChatGPT:由 OpenAI 开发的聊天机器人,支持代码生成、调试和问题解答。
  • Github Copilot:GitHub 推出的 AI 编程助手,能在主流编辑器中实时补全和建议代码。首月免费,后续 $10/月。
  • Claude:由 Anthropic 开发的 AI 助手,专注于代码生成和调试。

3.2 AI 通用工具

  • DeepSeek:国内访问顺畅,整体表现不错,但结果的稳定性欠佳。
  • 豆包:更适合文字编排、翻译等。
  • kimi:与豆包相当。

3.3 AI 编程工具

Note: 这些都是 VScode 中的插件。(VScode 插件安装方法常用插件)

  • Codeium:免费 AI 代码补全工具,支持多种语言和编辑器,提升开发效率。
  • Clint:基于 AI 的代码补全插件,支持多种编程语言和开发环境。
  • Tabnine:基于 AI 的代码补全插件,兼容多种编程语言和开发环境。

3.4 其他工具

  • Replit:在线编程平台,支持多种语言,适合协作和快速原型开发。
  • Kite:AI 驱动的代码补全工具,支持主流编辑器,提升编程效率。
  • Codex:由 OpenAI 开发的代码生成模型,可理解自然语言并生成代码。
  • Codeium:免费 AI 代码补全工具,支持多种语言和编辑器。
  • CodeWhisperer:AWS 推出的 AI 编程助手,支持云服务集成和代码建议。
  • PolyCoder:开源代码生成模型,专注于 C 语言代码生成。
  • CodeGen:由 Salesforce 研究团队开发的代码生成模型,支持多种编程语言。

3.5 参考资料

3.6 理念

自然语言编程 vs. 传统编程

  • 「自然语言编程」与 Python、C++ 等传统编程本质上都是向计算机发出指令,要求其执行特定操作
  • 区别在于:
    • 传统编程语言(如 Python、C++)有严格的语法和结构
    • 自然语言编程则用人类语言(如中文、英文)描述操作

思维方式与沟通能力

  • 初学时,自然语言编程似乎更简单
  • 真正发挥其潜力,关键在于思维方式沟通方式(如何提问)
  • 学习曲线很陡峭:
    • 知识广度:你要知道很多东西以及他们的关联,才能提出好的问题
    • 知识深度:基本概念、核心理论、核心算法
    • 逻辑思维:界定问题、拆解问题、追问(横向 v.s. 纵向)
    • 语言表达:简洁、准确、清晰

最核心的理念转变

  • 提示词 = 自然语言的”代码”
  • 写好提示词,就像写好 Python/C++ 代码一样重要
  • 许多高校已开设「提示词工程」课程,「Prompt 工程师」将成为热门职业

推荐学习资料

3.7 提示词

Tips

收集整理自己的提示词

3.8 我的使用经验

我常用的提示词

借助 AI 找 IV:连玉君的实战经验

3.8.1 实例:使用 AI 写一篇完整的论文推介

核心提示词: 参见 连玉君的 Prompts

提示词

Prompt 1:

{先上传论文的 PDF 版本给 ChatGPT,然后输入以下提示词:}

“写一篇论文推介,介绍附件中的论文。先列个提纲给我。”

Prompt 2:

分批次输出吧:

  1. 计量模型的证明和详细推导过程可以省略,但要补充简单直白的语言来解释模型和参数的经济含义
  2. 把数学符号和公式都采用 Latex 格式来写,以保证输出美观
  3. 行内公式采用 $f=x$ 格式,单行公式采用 $$f=x$$ 格式
  4. 所有括号都用半角模式,中英文混排注意加空格
  5. 不要添加任何表情符号
  6. 按 ‘## 1. xxx’,‘### 1.1 xxx’,‘#### xxx’(不编号) 的格式来分 Section, Subsection, Subsubsection
  7. 参考文献格式:
    • xxx, xxx, xxx. (2023). xxx. Journal of xxx, 1(1), 1-10. [Link](https://doi.org/{DOI}), [-PDF-](http://sci-hub.ren/{DOI}), [Google](<https://scholar.google.com/scholar?q={Title of the Paper}>).
  8. 注意:每次生成答案时,都在首行按如下格式添加 label,以便我追问时定位:‘mylabel-01’,‘mylabel-02’,……

Prompt 3:

连续输出,中间无需停顿

Prompt 4:

详细介绍一下 4.4 模型四:部分线性函数系数面板模型(PLFC)中的模型设定和估计方法

Prompt 5:

补充一个 Subsection,添加如下内容: - 为没有任何非参数估计基础的读者解释一下样条基函数(Sieve Estimation) - 再补充一个 subsection,解释一下边际效应的置信区间是如何计算的