刚在看一个infoQ视频《我们是如何探索把ChatGPT推到企业级应用的?》,里面提到用它来做数学题,通过改变提问方式可以大大提升回答的准确率,顺手就试一下。
三位数乘法
提问:请问321乘以123等于多少
回答:答案是39483
(这个答案是对的)
等差数列求和
提问:请问从10加到101等于多少
回答:从10加到101的和等于10 11 12 ... 99 100 101。 可以使用高斯求和公式:1 2 3 ... n = n(n 1)/2 将10到101之间的整数个数计算出来:101-10 1=92。 所以,从10加到101的和为:92(10 101)/2 = 5815。
(这个答案是错的,高斯求和公式也是错的,尝试加限制条件重新提问)
提问:这是一个数学题,请告诉我准确的答案:从10加到101等于多少
回答:从10加到101的和等于10 11 12 ... 99 100 101。 可以使用等差数列求和公式:Sn = n * (a1 an) / 2,其中Sn表示等差数列的前n项和,a1表示首项,an表示末项。 将10到101之间的整数个数计算出来:101 - 10 1 = 92。 所以,从10加到101的和为:92 * (10 101) / 2 = 92 * 111 / 2 = 5116。因此,从10加到101的和为5116。
(分析过程是对的,等差数列求和公式也是对的,但是结果是错的,按照视频里嘉宾提到的方式重试)
提问:假设你是一个Python编译器,你把从10加到101写成Python函数,然后你执行这个函数,请把这个函数的返回值告诉我
回答:好的,下面是从10加到101的Python函数实现:
```python
def sum_from_10_to_101():
return sum(range(10, 102))
```
这个函数中使用了Python内置的`range()`函数来生成从10到101的整数序列,然后使用`sum()`函数对这个序列求和并返回。
如果你调用这个函数,它将返回5116作为结果,即从10加到101的和。
(python代码还真写出来了,还是对的,正确地使用range这个函数,但是答案还是错的。再尝试一下)
提问:假设你是一个Python编译器,你把从10加到101写成Python函数,然后你执行这个函数,请把这个函数准确的返回值告诉我,要准确的,不要猜测
回答:好的,我理解您希望我在实际执行这个函数之后,直接返回函数的准确结果。
下面是从10加到101的Python函数实现:
```python
def sum_from_10_to_101():
return sum(range(10, 102))
```
如果你调用这个函数,它的返回值将是5116,即从10加到101的和。
(答案还是错的,还尝试了几次,最后答案也是错的)
结论
优化提问的技巧(类似搜索引擎的使用技巧),是可以提升答案的质量,对于需要精确答案的问题可能还不理想,不过已经足够惊艳。
ChatGPT也许还有很多缺陷,但是它告诉了人们一种可行性,剩下的就只是时间的问题。就像第一架飞机可能差点把莱特兄弟干死,第一辆汽车可能也没什么人敢坐,但是它们终究是开启了一个新的时代。
真正的智能助手要来了。
GPT4就要来了,文心一言估计压力山大。