GitHub Copilot 发布也不到两年时间,ChatGPT 问世了,不是很懂背后的原理,都用了一段时间。两个工具的辅助层面完全不同,但是都做到了大幅提高生产力。

太复杂的事情,AI还做不到,毕竟他们没有逻辑,有套路的或者说范式固定的事情,训练的语料足够,AI的效果能打个九分。

github copilot

发布的时候,看着官网的介绍demo,不是很智能,试用了一下,不是很好用,放弃了。

2022年前,闲来无事,切换到新版本体验一下,效果已经不错了,就是国内的速度有点慢,大概率是网络的原因。Python之类的语言,依据注释写出来的代码都还不错,比我自己查资料然后编写的速度快了很多。

ChatGPT

Github Copilot还停留在程序员,也就是开发的角度来设计产品,你需要懂的如何编程,慢慢的通过注释来引导AI辅助编程。

ChatGPT 走到了下一个层面,让外行人也能迅速上手。对话聊天交互式的设计,你完全可以提出问题,描述需求,不懂的地方,继续提问。

简单来个例子,知道分词的概念,但是不知道如何编码,想要计算字符串的相似度:

Python 分词计算 維天運通 LOGORY 和 合肥維天運通信息科技股份有限公司 两个字符串的相似度;
比较前,统一处理字符串,英文转换为小写;
第二个字符中如果能找到第一个字符的首字符,将第二个字符串截位,截位的长度为第一个字符串的长度

你好,这是Bing。😊

根据网上的信息123,Python 分词计算可以使用 jieba 库来实现。jieba 库支持三种分词模式:精确模式、全模式和搜索引擎模式。你可以根据你的需求选择合适的模式。

为了比较两个字符串的相似度,你需要先对它们进行分词,然后计算它们的词向量或者编辑距离等指标。你可以使用 numpy 或者 scipy 等库来进行数学运算。

为了统一处理字符串,英文转换为小写,你可以使用 Python 的内置函数 lower() 来实现。

为了截取第二个字符串,你可以使用 Python 的切片操作符 [ ] 来实现。

以下是一个可能的代码示例:

import jieba
import numpy as np
from scipy.spatial.distance import cosine

# 定义两个字符串
str1 = "維天運通 LOGORY"
str2 = "合肥維天運通信息科技股份有限公司"

# 统一处理字符串,英文转换为小写
str1 = str1.lower()
str2 = str2.lower()

# 找到第二个字符串中第一个字符的位置
index = str2.find(str1[0])

# 如果找到了,截取第二个字符串
if index != -1:
    str2 = str2[index:index+len(str1)]

# 使用 jieba 库进行分词
words1 = list(jieba.cut(str1))
words2 = list(jieba.cut(str2))

# 计算两个字符串的词向量(以词频作为权重)
vector1 = np.zeros(len(words1))
vector2 = np.zeros(len(words1))

for i, word in enumerate(words1):
    vector1[i] += 1 # 统计第一个字符串中每个词出现的次数
    if word in words2:
        vector2[i] += 1 # 统计第二个字符串中每个词出现的次数

# 计算两个字符串的相似度(以余弦距离作为指标)
similarity = 1 - cosine(vector1, vector2)

print("两个字符串的相似度是:", similarity)

更进一步,咨询运行的结果,恭喜你,发现问题了,结果是瞎编的,它并没有实际运行代码,但是会给你一个不错的结果

栗子

提问:sql 语句,查出产品代码表中,产品代码在这个区间 80000-89999 的记录

你好,这是 Bing。😊

根据搜索结果12,你可以使用 SQL BETWEEN 运算符来选择给定区间内的值。BETWEEN 运算符包含了开始和结束的值。

你需要先指定要查询的表名和列名,然后在 WHERE 子句中使用 BETWEEN 运算符和区间值。

例如,如果你要查询产品代码表中,产品代码在 80000 到 89999 之间的记录,你可以使用以下语句:

SELECT * FROM product_code
WHERE code BETWEEN 80000 AND 89999;
这里,* 表示选择所有列3。如果你只想选择特定的列,比如产品名称和价格,你可以用逗号分隔它们,如下:

SELECT name, price FROM product_code
WHERE code BETWEEN 80000 AND 89999;
希望这能帮助到你。

继续提问,否定它:产品代码是字符串,你的代码错了

抱歉,我没有注意到产品代码是字符串。如果是这样的话,你需要在区间值两边加上单引号,如下:

SELECT * FROM product_code
WHERE code BETWEEN '80000' AND '89999';
请原谅我的错误。🙏

恭喜你,它会认错的。