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 通用工具
3.3 AI 编程工具
Note: 这些都是 VScode 中的插件。(VScode 插件安装方法;常用插件)
3.4 其他工具
3.5 参考资料
3.6 理念
自然语言编程 vs. 传统编程
- 「自然语言编程」与 Python、C++ 等传统编程本质上都是向计算机发出指令,要求其执行特定操作
- 区别在于:
- 传统编程语言(如 Python、C++)有严格的语法和结构
- 自然语言编程则用人类语言(如中文、英文)描述操作
思维方式与沟通能力
- 初学时,自然语言编程似乎更简单
- 真正发挥其潜力,关键在于思维方式和沟通方式(如何提问)
- 学习曲线很陡峭:
- 知识广度:你要知道很多东西以及他们的关联,才能提出好的问题
- 知识深度:基本概念、核心理论、核心算法
- 逻辑思维:界定问题、拆解问题、追问(横向 v.s. 纵向)
- 语言表达:简洁、准确、清晰
最核心的理念转变
- 提示词 = 自然语言的”代码”
- 写好提示词,就像写好 Python/C++ 代码一样重要
- 许多高校已开设「提示词工程」课程,「Prompt 工程师」将成为热门职业
推荐学习资料
3.7 提示词
Tips
- 先粗后细 e.g. 生成讲义 v.s 先细后粗
- 顺藤摸瓜-迁移 e.g. 各种抽样方法
- 虚构角色 e.g. 你是一个资深的英文经济学期刊的编辑 → 推文
收集整理自己的提示词
3.8 我的使用经验
我常用的提示词
借助 AI 找 IV:连玉君的实战经验
3.8.1 实例:使用 AI 写一篇完整的论文推介
核心提示词: 参见 连玉君的 Prompts
提示词
Prompt 1:
{先上传论文的 PDF 版本给 ChatGPT,然后输入以下提示词:}
“写一篇论文推介,介绍附件中的论文。先列个提纲给我。”
Prompt 2:
分批次输出吧:
- 计量模型的证明和详细推导过程可以省略,但要补充简单直白的语言来解释模型和参数的经济含义
- 把数学符号和公式都采用 Latex 格式来写,以保证输出美观
- 行内公式采用
$f=x$格式,单行公式采用$$f=x$$格式 - 所有括号都用半角模式,中英文混排注意加空格
- 不要添加任何表情符号
- 按 ‘## 1. xxx’,‘### 1.1 xxx’,‘#### xxx’(不编号) 的格式来分 Section, Subsection, Subsubsection
- 参考文献格式:
- 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}>).
- xxx, xxx, xxx. (2023). xxx. Journal of xxx, 1(1), 1-10.
- 注意:每次生成答案时,都在首行按如下格式添加 label,以便我追问时定位:‘mylabel-01’,‘mylabel-02’,……
Prompt 3:
连续输出,中间无需停顿
Prompt 4:
详细介绍一下 4.4 模型四:部分线性函数系数面板模型(PLFC)中的模型设定和估计方法
Prompt 5:
补充一个 Subsection,添加如下内容: - 为没有任何非参数估计基础的读者解释一下样条基函数(Sieve Estimation) - 再补充一个 subsection,解释一下边际效应的置信区间是如何计算的
