【Jules】Jules AI 助手:快速入门指南
Google推出的Jules是一款实验性AI编码助手,可帮助开发者修复错误、添加文档和构建新功能。其核心特点是异步工作模式,允许开发者在AI处理任务时继续其他工作。Jules通过GitHub集成理解代码库,提供从任务创建到代码修改的完整流程:用户提交任务→AI生成计划→用户确认→执行任务→提交更改。使用前需登录Google账户并授权GitHub仓库访问权限。最佳实践包括提供清晰指令、明确任务范围、
文章目录
简介
Jules 是 Google 推出的一款实验性 AI 编码助手,它能帮助开发者修复错误、添加文档和构建新功能。Jules 最大的特点是异步工作,这意味着当它处理任务时,你可以转而处理其他事情。Jules 与 GitHub 集成,能够理解你的代码库,并根据你的指令进行工作。
登录与配置
使用 Jules 的第一步是登录并配置你的账户。
登录步骤
- 访问 jules.google.com
- 使用你的 Google 账户登录
- 首次登录时,接受隐私声明
连接 GitHub
Jules 需要访问你的仓库才能工作。以下是连接 GitHub 的步骤:
- 点击 “Connect to GitHub account”(连接到 GitHub 账户)
- 完成 GitHub 登录流程
- 选择你想要让 Jules 访问的仓库(可以是全部或特定仓库)
- 你将被重定向回 Jules。如果没有,请尝试刷新页面
连接成功后,你将看到一个仓库选择器,可以选择你希望 Jules 处理的仓库,以及一个提示输入框。
创建第一个任务
Jules 会在虚拟机中克隆你的代码、安装依赖项并修改文件。以下是创建任务的步骤:
- 从仓库选择器中选择一个仓库
- 选择你希望 Jules 处理的分支(默认会选择默认分支)
- 编写清晰、具体的提示。例如:
在 utils.js 中为 parseQueryString 函数添加测试
- (可选)添加环境设置脚本
- 点击 “Give me a plan”(给我一个计划)
提交任务后,Jules 会生成一个计划。你可以在进行任何代码更改之前审查并批准该计划。
任务流程
当你提交任务后,Jules 会遵循以下流程:
- 分析任务:Jules 会理解你的请求并分析代码库
- 生成计划:它会创建一个执行任务的详细计划
- 等待批准:你需要审查并批准计划
- 执行任务:Jules 修改代码并运行测试
- 提交更改:完成后,Jules 会提供更改内容供你审查
启用通知
你可以在 Jules 运行任务的同时处理其他事情。要及时获取任务进度通知:
- 当系统提示时,启用浏览器通知
- 随时前往 Settings → notifications 启用或禁用通知
当任务完成或需要你的输入时,系统会通知你。
最佳实践
为了充分利用 Jules,以下是一些最佳实践:
- 明确的指令:提供清晰、具体的任务描述
- 合适的任务范围:从小型、定义明确的任务开始
- 提供上下文:包含相关文件路径和函数名称
- 指定测试要求:说明如何验证更改是否正确
- 环境设置:如果项目有特殊的设置要求,请在提交任务时提供
代码示例
以下是一个使用 C# 的代码示例,演示如何创建一个可供 Jules 处理的函数:
using System;
using System.Collections.Generic;
using System.Linq;
/// <summary>
/// 查询字符串解析器
/// </summary>
public class QueryStringParser
{
/// <summary>
/// 解析查询字符串并返回键值对字典
/// </summary>
/// <param name="queryString">要解析的查询字符串,格式如:"name=value&key=data"</param>
/// <returns>包含键值对的字典</returns>
public static Dictionary<string, string> ParseQueryString(string queryString)
{
// 创建一个新的字典来存储解析后的键值对
var result = new Dictionary<string, string>();
// 如果查询字符串为空,则返回空字典
if (string.IsNullOrWhiteSpace(queryString))
{
return result;
}
// 如果查询字符串以问号开头,删除问号
if (queryString.StartsWith("?"))
{
queryString = queryString.Substring(1);
}
// 按 & 符号分割查询字符串为多个参数
string[] parameters = queryString.Split('&');
// 遍历每个参数
foreach (var parameter in parameters)
{
// 跳过空参数
if (string.IsNullOrWhiteSpace(parameter))
{
continue;
}
// 按 = 符号分割每个参数为键和值
int equalsIndex = parameter.IndexOf('=');
// 处理没有值的参数(如 "param",而不是 "param=value")
if (equalsIndex < 0)
{
// 将没有值的参数键添加到字典中,值设为空字符串
result[Uri.UnescapeDataString(parameter)] = string.Empty;
}
else
{
// 提取键和值,并进行 URL 解码
string key = Uri.UnescapeDataString(parameter.Substring(0, equalsIndex));
string value = equalsIndex < parameter.Length - 1
? Uri.UnescapeDataString(parameter.Substring(equalsIndex + 1))
: string.Empty;
// 将键值对添加到字典中
result[key] = value;
}
}
return result;
}
}
如果你要向 Jules 提交一个任务来为上述函数编写单元测试,可以这样描述:
为 QueryStringParser 类中的 ParseQueryString 方法编写全面的单元测试。测试应该覆盖以下场景:空查询字符串、带问号的查询字符串、多个参数、URL 编码的参数、没有值的参数。
编写完成后,可以直接上传至github
上传完成后可以在github中查看
常见问题解答
Jules 支持哪些编程语言?
Jules 支持大多数主流编程语言,包括但不限于:JavaScript、TypeScript、Python、Java、C#、Go、Rust 等。
Jules 能否处理私有仓库?
是的,Jules 可以处理你授权访问的私有 GitHub 仓库。
我可以为 Jules 指定特定的 Git 分支吗?
是的,在创建任务时,你可以选择 Jules 应该在哪个分支上工作。
Jules 能否安装项目依赖项?
是的,Jules 会尝试安装项目依赖项。对于复杂的设置,你可以提供额外的环境设置脚本。
如何处理 Jules 生成的不正确代码?
如果 Jules 生成的代码不符合预期,你可以提供反馈并要求它进行修改,或者拒绝其提出的更改。## 学习资源
要深入了解 Jules 的使用,可以参考以下资源:
更多推荐
所有评论(0)