关于Baidu Comate智能代码助手
智能代码助手简介
代码助手可以快速的帮我们补充代码,修改代码,添加注释,翻译中英文,起变量函数名字等操作,十分的友好,这类代码助手现阶段有较多的产品,比如:
Baidu Comate智能代码助手 GitHub Copilot 通义灵码 Bito
本文主要基于Baidu Comate智能代码助手进行高效代码编程体验,let’s go!!!
Baidu Comate智能代码助手简介
Baidu Comate智能代码助手 支持 100 多种语言和多种 IDE(集成开发环境)平台,可以推荐代码、生成代码注释、查找代码缺陷、给出优化方案,还能 深度解读企业与个人私域代码库 等。Baidu Comate智能代码助手,是基于文心大模型,打造的新一代编码辅助工具,具备代码智能、场景丰富、创造价值、广泛应用等多重优势,实现“帮你想、帮你写、帮你改”。 目前,面向个人开发者 已经免费 使用了。
注册Comate
点击Comate官方链接,进入官网,用百度账户登录,点击免费使用。
点击免费使用后,进入如下页面:
根据具体开发工具,安装对应的插件,比如我使用vscode,选择vscode后,点击安装comate插件。
会打开vscode,点击install
安装完成,右下角会提示登录百度账号
按照要求点击登录,会在浏览器弹出,百度页面,正常登录,点击确认即可。
点击确认后,会提示登录成功
Comate使用案例
查看Comate可以做什么
点击comate插件, 在comate插件的问答区域,输入 /help 返回如下:
总结下,Baidu Comate提供生成代码、编程知识问答功能。
代码智能补全
- 在编辑器中,Comate 会智能给出补全提示,按Tab键采纳。
- 在代码编辑区写注释,换行后会给出补全代码。
- 鼠标悬浮到推荐代码上可以查看快捷键,设置快捷键显示方式。
- 快捷键: - Tab 采纳 - Ctrl → 逐单词采纳 - Ctrl ↓ 逐行采纳。
编程知识问答
- 您可以在侧边栏打开对话框(快捷键:window + Y),向我提问常规编程问题。
专业插件
- 选中代码并点击右键,选择Baidu Comate,可进行代码解释、单测生成、代码优化等专业领域的操作。
- 使用时先通过@唤起插件,再通过/唤起命令(或直接使用/唤起命令)。
注释生成代码
创建一个py文件–Comate代码测试.py 添加如下注释:
# 写一个冒泡排序的方法
写入
# 写一个冒泡排序的方法
def b
提示如下:
输入 tab键可以全部补全 如果不输入tab键,可以选 ctrl+向下箭头 进行逐行 补全
生成行间注释
点击上面的行间注释,可以在插件左侧生成行间注释
点击左侧的采纳,会提示采纳成功,并生成完整注释,极大的提示了工作效率
生成函数注释
生成函数注释,与行间注释基本一致
调优建议
点击调优建议
点击接收修复,如下
需要注意的是,这里的代码会生成在光标所在位置,而非替换原有的代码,所以要注意在采纳前,把光标放在合适的位置,不要放在函数中,否则会生成如下代码
对话问答-指令插件和知识
在comate代码插件区域的下方,提供了指令 插件和知识三种拓展
在vscode左侧的comate对话框可以通过 /调取指令
@插件 调取插件
#知识库
点击comate,的插件配置,可以进入插件配置平台和知识中心。
其中插件配置中心包含了大模型的插件,默认采用官方配置集。也可以自己进行定制配置。
其中知识库包含了大模型匹配的知识库,便于准确输出特定领域的回答,比如,打开知识中心,可以看到comate助手支持的知识库包含了很多百度文档,这点对于要开发基于百度api的程序是十分的友好。
基于对话问答窗口的json格式插件使用
选择插件,选择工具箱
> 输入 / 选择/JSON格式化
即可完成 json格式生成
基于对话问答窗口的文心一言大模型接口实现
插件选择comate插件 输入 /生成调用文心一言大模型接口的代码 返回如下:
点击新建后,可以创建文件,代码如下
基于对话问答的@AutoWork插件实现一个分类算法
选择@AutoWork插件,在对话窗口提问 生成一个分类算法的案例 生成如下代码
新建文件,并命名为aa.py,运行结果如下:
完整代码如下:
# 导入所需库
import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import classification_report, confusion_matrix
# 加载鸢尾花数据集
iris = datasets.load_iris()
X = iris.data
y = iris.target
# 划分数据集为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# 数据标准化
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)
# 创建KNN分类器实例
knn = KNeighborsClassifier(n_neighbors=3)
# 训练模型
knn.fit(X_train, y_train)
# 在测试集上进行预测
y_pred = knn.predict(X_test)
# 评估模型性能
print(confusion_matrix(y_test, y_pred))
print(classification_report(y_test, y_pred))
# 可视化结果(可选)
plt.scatter(X_test[:, 0], X_test[:, 1], c=y_pred, cmap='viridis')
plt.xlabel('Sepal length')
plt.ylabel('Sepal width')
plt.title('KNN Classification of Iris Dataset')
plt.show()
基于对话问答的默认的comate插件实现一个分类算法
选择默认的comate插件,在对话窗口提问 生成一个分类算法的案例 生成如下代码
选择新建文件 然后保存为合适的文件名bb 右键运行bb代码,如下
代码可以运行,整体还是良好的
完整代码如下:
# 导入所需库
import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score, classification_report, confusion_matrix
# 加载乳腺癌数据集
cancer = datasets.load_breast_cancer()
X = cancer.data
y = cancer.target
# 划分数据集为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 数据标准化
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)
# 创建逻辑回归模型实例
logreg = LogisticRegression()
# 训练模型
logreg.fit(X_train, y_train)
# 在测试集上进行预测
y_pred = logreg.predict(X_test)
# 评估模型性能
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy}")
print(confusion_matrix(y_test, y_pred))
print(classification_report(y_test, y_pred))
# 可视化结果(可选)
# 由于特征数量较多,这里只展示前两个特征
plt.scatter(X_test[:, 0], X_test[:, 1], c=y_pred, cmap='viridis')
plt.xlabel('Feature 1 (standardized)')
plt.ylabel('Feature 2 (standardized)')
plt.title('Logistic Regression Classification of Breast Cancer Dataset')
plt.show()
继续询问是否可以生成指定算法的代码
给出一个xgboost的案例代码
整体还是十分优秀的。
存在的问题及建议
代码函数的命名为中文问题
# 写一个插入排序的方法
def
按tab补全,会显示如下:
创建文件时,默认的文件名与代码中的文件名不匹配
比如说生成style.csss文件,但生成的文件名为代码的首行,可以在代码首行加上注释的文件名更好
生成一个聚类算法案例,会反复生成重复的代码
生成一个基于sklearn的聚类算法案例 按tab补全或 ctrl+↓ 会反复生成重复的代码
问答时,会带入上一步骤的代码,清除对话框也依然后带入
我询问 如何学习计算机视觉,并给出学习规划
回答的还是可以的
生成一个稍微复杂的完整游戏测试
在对话问答窗口调用comate插件,提问如下:
生成一个2048的游戏,基于html
按照回答,创建文件,和复制代码
创建index.html文件
创建style.css文件
创建index.js文件
又继续提问: 把上面代码放在一个文件中
经过测试,分开的代码和合并的代码都无法直接运行,看来使用的方式不建议直接生成大段的可用的代码,而应该聚焦于局部代码进行优化
总结
适合完善已有代码,添加注释,优化代码等操作,也可以做完整的学习规划,在自动创建文件上,文件名需要自己指定下。 整体可用还是不错的,下面给出对应的链接