<SOURCE_TEXT>
GitLab4J™ API (gitlab4j-api) 提供了一个功能齐全且易于使用的Java库,用于通过GitLab REST API操作GitLab仓库。此外,还提供了对GitLab webhooks和系统钩子的全面支持。
警告 如果您正在寻找我们的下一个主要版本
6.x.x
,它要求最低Java版本为11,并且使用jakarta.*
包而不是javax.*
包的Jakarta EE组件,请查看6.x
分支。 如果您正在使用Spring Boot 3和Spring Framework 6.0,那么您需要的是6.x.x
版本。
GitLab4J-API支持GitLab社区版(gitlab-ce)和GitLab企业版(gitlab-ee)的11.0+版本。
GitLab于2018年6月发布了GitLab 11.0版本,其中包含了对GitLab的许多重大更改。如果您使用的GitLab服务器版本早于11.0,强烈建议您要么更新GitLab安装,要么使用与您正在使用的GitLab版本大约同时发布的本库版本。
注意:
从GitLab 11.0开始,GitLab服务器已移除对GitLab API v3的支持(参见 https://about.gitlab.com/2018/06/01/api-v3-removal-impending/)。本库将在2019年某个时候移除对GitLab API v3的支持。如果您正在使用v3支持,请更新您的代码以使用GitLab API v4。
从GitLab4J-API 4.8.0开始,现在需要Java 8+才能使用GitLab4J-API。
要在Java项目中使用GitLab4J™ API,只需将以下依赖项添加到项目的构建文件中:<br /> Gradle: build.gradle
dependencies { ... compile group: 'org.gitlab4j', name: 'gitlab4j-api', version: '5.6.0' }
注意: 使用4.5之前的Gradle版本拉取依赖项可能会失败。请参阅Gradle问题3065
Maven: pom.xml
<dependency> <groupId>org.gitlab4j</groupId> <artifactId>gitlab4j-api</artifactId> <version>5.6.0</version> </dependency>
Jbang:
Jbang非常方便运行依赖第三方库的Java脚本。
只需在脚本顶部添加此行:
//DEPS org.gitlab4j:gitlab4j-api:5.6.0
Ivy和SBT<br/> 有报告称使用Ivy或SBT解析某些依赖项时存在问题,要解决这些问题,请参阅:<br/> <a href="https://github.com/eclipse-ee4j/jaxrs-api/issues/571">JAX-RS API问题#571</a><br/> <a href="https://github.com/eclipse-ee4j/jaxrs-api/issues/572">JAX-RS API问题#572</a>
虽然我们经常创建发布版本,但您可能对尚未发布的功能感兴趣。 您可以使用jitpack创建的jar来获取最新版本。
Gradle用法:
repositories { mavenCentral() maven { url "https://jitpack.io" content { includeGroup "com.github.gitlab4j" } } } dependencies { // ... implementation 'com.github.gitlab4j:gitlab4j-api:main-SNAPSHOT' // ... }
Maven用法:
<repositories> <repository> <id>jitpack.io</id> <url>https://jitpack.io</url> </repository> </repositories> <dependencies> <dependency> <groupId>com.github.gitlab4j</groupId> <artifactId>gitlab4j-api</artifactId> <version>main-SNAPSHOT</version> </dependency> <!-- ... --> </dependencies>
Jbang用法:
您只需像这样声明依赖项,而不是使用Maven坐标:
//DEPS https://github.com/gitlab4j/gitlab4j-api/tree/main#:SNAPSHOT
使用特定提交
版本main-SNAPSHOT
表示您希望获取main
分支的最新版本。
您也可以指向特定的提交:
dependencies { implementation 'com.github.gitlab4j:gitlab4j-api:6561c93aaf' }
<dependency> <groupId>com.github.gitlab4j</groupId> <artifactId>gitlab4j-api</artifactId> <version>6561c93aaf</version> </dependency>
//DEPS https://github.com/gitlab4j/gitlab4j-api/tree/6561c93aafa6bf35cb9bad0617127a0c249a8f9f
GitLab4J-API使用起来非常简单,您只需要GitLab服务器的URL和GitLab账户设置页面中的个人访问令牌。一旦有了这些信息,使用起来就像这样简单:
// 创建GitLabApi实例以与您的GitLab服务器通信 GitLabApi gitLabApi = new GitLabApi("http://your.gitlab.server.com", "YOUR_PERSONAL_ACCESS_TOKEN"); // 获取您的账户有权访问的项目列表 List<Project> projects = gitLabApi.getProjectApi().getProjects();
您也可以使用用户名和密码登录GitLab服务器:
// 使用用户名和密码登录GitLab服务器 GitLabApi gitLabApi = GitLabApi.oauth2Login("http://your.gitlab.server.com", "username", "password");
从GitLab4J-API 4.6.6开始,所有API请求都支持以另一个用户的身份执行API调用,前提是您以管理员身份进行身份验证:
// 创建GitLabApi实例以与您的GitLab服务器通信(必须是管理员) GitLabApi gitLabApi = new GitLabApi("http://your.gitlab.server.com", "YOUR_PERSONAL_ACCESS_TOKEN"); // 以不同用户身份执行sudo,在本例中是名为"johndoe"的用户,所有后续调用都将以"johndoe"的身份执行 gitLabApi.sudo("johndoe") // 关闭sudo模式 gitLabApi.unsudo();
从GitLab4J-API 4.14.21开始,添加了对设置API客户端连接和读取超时的支持:
GitLabApi gitLabApi = new GitLabApi("http://your.gitlab.com", "YOUR_PERSONAL_ACCESS_TOKEN", proxyConfig); // 将连接超时设置为1秒,读取超时设置为5秒 gitLabApi.setRequestTimeout(1000, 5000);
从GitLab4J-API 4.8.2开始,添加了通过HTTP代理服务器连接到GitLab服务器的支持:
</SOURCE_TEXT> <SOURCE_TEXT> // 使用代理服务器(带基本认证)登录GitLab服务器 Map<String, Object> proxyConfig = ProxyClientConfig.createProxyClientConfig( "http://your-proxy-server", "proxy-username", "proxy-password"); GitLabApi gitLabApi = new GitLabApi("http://your.gitlab.com", "YOUR_PERSONAL_ACCESS_TOKEN", null, proxyConfig); // 使用代理服务器(无认证)登录GitLab服务器 Map<String, Object> proxyConfig = ProxyClientConfig.createProxyClientConfig("http://your-proxy-server"); GitLabApi gitLabApi = new GitLabApi("http://your.gitlab.com", "YOUR_PERSONAL_ACCESS_TOKEN", null, proxyConfig); // 使用NTLM(Windows DC)代理登录GitLab服务器 Map<String, Object> ntlmProxyConfig = ProxyClientConfig.createNtlmProxyClientConfig( "http://your-proxy-server", "windows-username", "windows-password", "windows-workstation", "windows-domain"); GitLabApi gitLabApi = new GitLabApi("http://your.gitlab.com", "YOUR_PERSONAL_ACCESS_TOKEN", null, ntlmProxyConfig);
有关接受代理配置的完整方法列表,请参阅GitLabApi类的Javadoc(clientConfiguration参数)
从GitLab4J-API 4.2.0开始,已添加对GitLab API V4的支持。如果您的应用程序需要GitLab API V3, 您仍然可以通过以下方式创建GitLabApi实例来使用GitLab4J-API:
// 创建一个GitLabApi实例,使用GitLab API V3与您的GitLab服务器通信 GitLabApi gitLabApi = new GitLabApi(ApiVersion.V3, "http://your.gitlab.server.com", "YOUR_PRIVATE_TOKEN");
注意: 从GitLab 11.0开始,GitLab服务器已移除对GitLab API v3的支持(参见https://about.gitlab.com/2018/06/01/api-v3-removal-impending/)。对GitLab API v3的支持将在2019年某个时候从该库中移除。如果您正在使用v3支持,请更新您的代码以使用GitLab API v4。
从GitLab4J-API 4.8.39开始,已添加对记录GitLab API请求和响应的支持。使用GitLabApi实例的以下方法之一启用日志记录:
GitLabApi gitLabApi = new GitLabApi("http://your.gitlab.server.com", "YOUR_PERSONAL_ACCESS_TOKEN"); // 使用共享日志记录器和默认级别FINE进行日志记录 gitLabApi.enableRequestResponseLogging(); // 使用共享日志记录器和INFO级别进行日志记录 gitLabApi.enableRequestResponseLogging(java.util.logging.Level.INFO); // 使用指定的日志记录器和INFO级别进行日志记录 gitLabApi.enableRequestResponseLogging(yourLoggerInstance, java.util.logging.Level.INFO); // 使用共享日志记录器,INFO级别,并包括最多1024字节的实体日志记录 gitLabApi.enableRequestResponseLogging(java.util.logging.Level.INFO, 1024); // 使用指定的日志记录器,INFO级别,并包括最多1024字节的实体日志记录 gitLabApi.enableRequestResponseLogging(yourLoggerInstance, java.util.logging.Level.INFO, 1024);
GitLab4J-API提供了一种易于使用的分页机制,用于对GitLab API的结果列表进行分页。 以下是使用Pager的几个示例:
// 获取一个Pager实例,每页10个项目分页浏览项目 Pager<Project> projectPager = gitLabApi.getProjectApi().getProjects(10); // 遍历页面并打印出名称和描述 while (projectPager.hasNext()) { for (Project project : projectPager.next()) { System.out.println(project.getName() + " -: " + project.getDescription()); } }
从GitLab4J-API 4.9.2开始,您还可以使用Pager实例将所有项目作为单个列表获取:
// 获取一个Pager实例,以便我们可以将所有项目加载到单个列表中,每次10个项目: Pager<Project> projectPager = gitlabApi.getProjectsApi().getProjects(10); List<Project> allProjects = projectPager.all();
从GitLab4J-API 4.9.2开始,所有返回List结果的GitLabJ-API方法都有一个类似命名的方法,返回Java 8流。返回流的方法使用以下命名约定:getXxxxxStream()
。
重要 内置的返回流的方法使用___急切求值___,这意味着所有项目都从GitLab服务器预先获取,并返回一个将流式传输这些项目的流。急切求值不支持并行读取服务器数据,但它允许在数据获取后对流进行并行处理。
要使用___惰性求值___进行流式处理,请使用返回Pager
实例的GitLab4J-API方法,然后在Pager
实例上调用lazyStream()
方法创建惰性求值流。该流利用Pager
实例对可用项目进行分页。惰性流不支持并行操作或跳过。
// 流式处理可见项目,打印项目名称。 Stream<Project> projectStream = gitlabApi.getProjectApi().getProjectsStream(); projectStream.map(Project::getName).forEach(name -> System.out.println(name)); // 并行操作流,此示例按用户名对User实例进行排序 // 注意:用户的获取不是并行完成的, // 只有用户的排序是并行操作。 Stream<User> stream = gitlabApi.getUserApi().getUsersStream(); List<User> users = stream.parallel().sorted(comparing(User::getUsername)).collect(toList());
// 获取一个Pager实例,用于惰性流式处理Project实例。 // 在此示例中,每页将预取10个项目。 Pager<Project> projectPager = gitlabApi.getProjectApi().getProjects(10); // 惰性流式处理项目,打印每个项目名称,将输出限制为5个项目名称 projectPager.lazyStream().limit(5).map(Project::getName).forEach(name -> System.out.println(name));
GitLab4J-API支持Java 8 Optional<T>用于返回单个项目的API调用。以下是如何使用Java 8 Optional<T> API调用的示例:
Optional<Group> optionalGroup = gitlabApi.getGroupApi().getOptionalGroup("my-group-path"); if (optionalGroup.isPresent()) return optionalGroup.get(); return gitlabApi.getGroupApi().addGroup("my-group-name", "my-group-path");
GitLab问题允许进行时间跟踪。目前可用的时间单位如下:
转换率为1mo = 4w,1w = 5d,1d = 8h。
API已被分解为子API类,以便更容易使用并分离关注点。GitLab4J子API类通常与GitLab API文档有一对一的关系。以下是GitLab4J子API类与GitLab API文档映射的示例:
org.gitlab4j.api.GroupApi
-> https://docs.gitlab.com/ce/api/groups.html<br/>
org.gitlab4j.api.MergeRequestApi
-> https://docs.gitlab.com/ce/api/merge_requests.html<br/>
org.gitlab4j.api.ProjectApi
-> https://docs.gitlab.com/ce/api/projects.html<br/>
org.gitlab4j.api.UserApi
-> https://docs.gitlab.com/ce/api/users.html<br/>
以下是可用子API的列表,以及每个API的示例用法。有关每个子API可用方法的完整列表,请参阅<a href="https://javadoc.io/doc/org.gitlab4j/gitlab4j-api" target="_top">Javadocs</a>。
ApplicationsApi<br/> ApplicationSettingsApi<br/> AuditEventApi<br/> AwardEmojiApi<br/> BoardsApi<br/> CommitsApi<br/> ContainerRegistryApi<br/> DeployKeysApi<br/> DiscussionsApi<br/> EnvironmentsApi<br/> EpicsApi<br/> EventsApi<br/> GroupApi<br/> HealthCheckApi<br/> ImportExportApi<br/> IssuesApi<br/> JobApi<br/> LabelsApi<br/> LicenseApi<br/> LicenseTemplatesApi<br/> LabelsApi<br/> MergeRequestApi<br/> MilestonesApi<br/> NamespaceApi<br/> NotesApi<br/> NotificationSettingsApi<br/> PackagesApi<br/> PipelineApi<br/> ProjectApi<br/> ProtectedBranchesApi<br/> ReleasesApi<br/> RepositoryApi<br/> RepositoryFileApi<br/> ReourceLabelEventsApi<br/> RunnersApi<br/> </SOURCE_TEXT> <SOURCE_TEXT> SearchApi<br/> ServicesApi<br/> SessionApi<br/> SnippetsApi<br/> SystemHooksApi<br/> TagsApi<br/> TodosApi<br/> UserApi<br/> WikisApi
// 向GitLab添加一个OAUTH应用 ApplicationScope[] scopes = {ApplicationScope.SUDO, ApplicationScope.PROFILE}; gitLabApi.getApplicationsApi().createApplication("我的OAUTH应用", "https//example.com/myapp/callback", scopes);
// 获取当前GitLab服务器的应用设置 ApplicationSettings appSettings = gitLabApi.getApplicationSettingsApi().getAppliationSettings();
// 获取实体的当前GitLab服务器审计事件 // 这里使用了org.gitlab4j.api.utils.ISO8601类中的ISO8601日期工具 Date since = ISO8601.toDate("2017-01-01T00:00:00Z"); Date until = new Date(); // 现在 List<AuditEvent> auditEvents = gitLabApi.getAuditEventApi().getAuditEvents(since, until, EntityType.USER, 1);
// 获取指定问题的AwardEmoji列表(群组ID = 1,问题IID = 1) List<AwardEmoji> awardEmojis = gitLabApi.getAwardEmojiApi().getIssuAwardEmojis(1, 1);
// 获取指定项目的问题看板列表 List<Board> boards = gitLabApi.getBoardsApi().getBoards(projectId);
// 获取指定时间窗口内与指定分支关联的提交列表 // 这里使用了org.gitlab4j.api.utils.ISO8601类中的ISO8601日期工具 Date since = ISO8601.toDate("2017-01-01T00:00:00Z"); Date until = new Date(); // 现在 List<Commit> commits = gitLabApi.getCommitsApi().getCommits(1234, "new-feature", since, until);
// 获取指定项目的注册表仓库列表 List<RegistryRepository> registryRepos = gitLabApi.ContainerRegistryApi().getRepositories(projectId);
// 获取已认证用户的部署密钥列表 List<DeployKey> deployKeys = gitLabApi.getDeployKeysApi().getDeployKeys();
// 获取指定合并请求的讨论列表 List<Discussion> discussions = gitLabApi.getDiscussionsApi().getMergeRequestDiscussions(projectId, mergeRequestIid);
// 获取指定项目的环境列表 List<Environment> environments = gitLabApi.getEnvironmentsApi().getEnvironments(projectId);
// 获取请求的群组及其子群组的史诗列表 List<Epic> epics = gitLabApi.getEpicsApi().getEpics(1);
// 获取已认证用户的事件列表 Date after = new Date(0); // 纪元之后 Date before = new Date(); // 现在之前 List<Event> events = gitLabApi.getEventsApi().getAuthenticatedUserEvents(null, null, before, after, DESC);
// 获取您有权访问的群组列表 List<Group> groups = gitLabApi.getGroupApi().getGroups();
// 获取活跃度端点健康检查结果。假设已按以下文档设置IP白名单: // https://docs.gitlab.com/ee/administration/monitoring/ip_whitelist.html HealthCheckInfo healthCheck = gitLabApi.getHealthCheckApi().getLiveness();
// 为指定的项目ID安排项目导出 gitLabApi.getImportExportApi().scheduleExport(projectId); // 获取指定项目ID的项目导出状态 ExportStatus exportStatus = gitLabApi.getImportExportApi().getExportStatus(projectId);
// 获取指定项目ID的问题列表 List<Issue> issues = gitLabApi.getIssuesApi().getIssues(1234);
// 获取指定项目ID的作业列表 List<Job> jobs = gitLabApi.getJobApi().getJobs(1234);
// 获取指定项目ID的标签列表 List<Label> labels = gitLabApi.getLabelsApi().getLabels(1234);
// 检索当前许可证的信息 License license = gitLabApi.getLicenseApi().getLicense();
// 获取开源许可证模板列表 List<LicenseTemplate> licenses = gitLabApi.getLicenseTemplatesApi().getLicenseTemplates();
// 获取指定项目的合并请求列表 List<MergeRequest> mergeRequests = gitLabApi.getMergeRequestApi().getMergeRequests(1234);
// 获取指定项目的里程碑列 表 List<Milestone> milestones = gitLabApi.getMilestonesApi().getMilestones(1234);
// 获取名称或路径中包含"foobar"的所有命名空间 List<Namespace> namespaces = gitLabApi.getNamespaceApi().findNamespaces("foobar");
// 获取项目ID为1234,问题IID为1的问题备注列表 List<Note> notes = gitLabApi.getNotesApi().getNotes(1234, 1);
// 获取当前全局通知设置 NotificationSettings settings = gitLabApi.getNotificationSettingsApi().getGlobalNotificationSettings();
// 获取指定项目ID的所有包 List<Packages> packages = gitLabApi.getPackagesApi().getPackages(1234);
// 获取指定项目ID的所有流水线 List<Pipeline> pipelines = gitLabApi.getPipelineApi().getPipelines(1234);
// 获取可访问的项目列表 public List<Project> projects = gitLabApi.getProjectApi().getProjects();
// 创建一个新项目 Project projectSpec = new Project() .withName("my-project") .withDescription("我的演示项目。") .withIssuesEnabled(true) .withMergeRequestsEnabled(true) .withWikiEnabled(true) .withSnippetsEnabled(true) .withPublic(true); Project newProject = gitLabApi.getProjectApi().createProject(projectSpec);
List<ProtectedBranch> branches = gitLabApi.getProtectedBranchesApi().getProtectedBranches(project.getId());
// 获取指定项目的发布列表 List<Release> releases = gitLabApi.getReleasesApi().getReleases(projectId);
// 获取项目的仓库分支列表,按名称字母顺序排序 List<Branch> branches = gitLabApi.getRepositoryApi().getBranches(projectId);
// 在项目中按名称搜索仓库分支 List<Branch> branches = gitLabApi.getRepositoryApi().getBranches(projectId, searchTerm);
// 获取仓库中文件的信息(名称、大小等)和内容 RepositoryFile file = gitLabApi.getRepositoryFileApi().getFile("file-path", 1234, "ref");
// 获取指定合并请求的标签事件 List<LabelEvent> labelEvents = gitLabApi.getResourceLabelEventsApi() .getMergeRequestLabelEvents(projectId, mergeRequestIid);
// 获取所有运行器 List<Runner> runners = gitLabApi.getRunnersApi().getAllRunners();
// 全局搜索项目 List<?> projects = gitLabApi.getSearchApi().globalSearch(SearchScope.PROJECTS, "要搜索的文本");
// 激活/更新Slack通知服务 SlackService slackService = new SlackService() .withMergeRequestsEvents(true) .withWebhook("https://hooks.slack.com/services/ABCDEFGHI/KJLMNOPQR/wetrewq7897HKLH8998wfjjj") .withUsername("GitLab4J"); gitLabApi.getServicesApi().updateSlackService("project-path", slackService);
// 登录GitLab服务器并获取会话信息 gitLabApi.getSessionApi().login("你的用户名", "你的邮箱", "你的密码");
// 获取已认证用户的代码片段列表 List<Snippet> snippets = gitLabApi.getSnippetsApi().getSnippets();
// 获取已安装的系统钩子列表 List<SystemHook> hooks = gitLabApi.getSystemHooksApi().getSystemHooks();
// 获取指定项目ID的标签列表 List<Tag> tags = gitLabApi.getTagsApi().getTags(projectId);
// 获取当前用户所有待办事项的列表 List<Todo> todos = gitLabApi.getTodosApi().gePendingTodos();
// 获取用户ID为1的用户信息 User user = gitLabApi.getUserApi().getUser(1); // 创建一个新用户,不设置密码,将收到重置密码邮件 User userConfig = new User() .withEmail("jdoe@example.com") .withName("Jane Doe") </SOURCE_TEXT> <SOURCE_TEXT> .withUsername("jdoe"); String password = null; boolean sendResetPasswordEmail = true; gitLabApi.getUserApi().createUser(userConfig, password, sendResetPasswordEmail);
// 获取项目wiki中的页面列表 List<WikiPage> wikiPages = gitLabApi.getWikisApi().getPages();
</SOURCE_TEXT>
字节跳动发布的AI编程神器IDE
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。
全能AI智能助手,随时解答生活与工作的多样问题
问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。
实时语音翻译/同声传译工具
Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。
一键生成PPT和Word,让学习生活更轻松
讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。
深度推理能力全新升级,全面对标OpenAI o1
科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。
一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型
Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。
AI助力,做PPT更简单!
咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。
选题、配图、成文,一站式创作,让内容运营更高效
讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。
专业的AI公文写作平台,公文写作神器
AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。
OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。
openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。
最新AI工具、AI资讯
独家AI资源、AI项目落地
微信扫一扫关注公众号