gitlab4j-api

gitlab4j-api

集成GitLab REST API的轻量级Java客户端库

GitLab4J API是一个功能完备的Java库,用于通过REST API与GitLab仓库交互。该库支持项目管理、问题跟踪和合并请求等GitLab核心功能,并能处理webhooks和系统钩子。GitLab4J API简化了Java应用程序与GitLab的集成过程,为开发者提供了便捷的解决方案。

GitLab4JAPIJavaREST APIGitLabGithub开源项目

<SOURCE_TEXT>

GitLab4J™ API (gitlab4j-api)<br />GitLab REST API的Java客户端库

Maven Central 构建状态 javadoc.io

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版本。

GitLab服务器版本支持

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

Java 8要求

从GitLab4J-API 4.8.0开始,现在需要Java 8+才能使用GitLab4J-API。

Javadocs

Javadocs可在此处获取: javadoc.io

项目设置

要在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参数)


GitLab API V3和V4支持

从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。


API请求和响应的日志记录

从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();

Java 8流支持

从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));

Java 8 Optional支持

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问题允许进行时间跟踪。目前可用的时间单位如下:

  • 月(mo)
  • 周(w)
  • 天(d)
  • 小时(h)
  • 分钟(m)

转换率为1mo = 4w,1w = 5d,1d = 8h。


进行API调用

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的示例用法。有关每个子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

子API示例


ApplicationsApi

// 向GitLab添加一个OAUTH应用 ApplicationScope[] scopes = {ApplicationScope.SUDO, ApplicationScope.PROFILE}; gitLabApi.getApplicationsApi().createApplication("我的OAUTH应用", "https//example.com/myapp/callback", scopes);

ApplicationSettingsApi

// 获取当前GitLab服务器的应用设置 ApplicationSettings appSettings = gitLabApi.getApplicationSettingsApi().getAppliationSettings();

AuditEventApi

// 获取实体的当前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);

AwardEmojiApi

// 获取指定问题的AwardEmoji列表(群组ID = 1,问题IID = 1) List<AwardEmoji> awardEmojis = gitLabApi.getAwardEmojiApi().getIssuAwardEmojis(1, 1);

BoardsApi

// 获取指定项目的问题看板列表 List<Board> boards = gitLabApi.getBoardsApi().getBoards(projectId);

CommitsApi

// 获取指定时间窗口内与指定分支关联的提交列表 // 这里使用了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);

ContainerRegistryApi

// 获取指定项目的注册表仓库列表 List<RegistryRepository> registryRepos = gitLabApi.ContainerRegistryApi().getRepositories(projectId);

DeployKeysApi

// 获取已认证用户的部署密钥列表 List<DeployKey> deployKeys = gitLabApi.getDeployKeysApi().getDeployKeys();

DiscussionsApi

// 获取指定合并请求的讨论列表 List<Discussion> discussions = gitLabApi.getDiscussionsApi().getMergeRequestDiscussions(projectId, mergeRequestIid);

EnvironmentsApi

// 获取指定项目的环境列表 List<Environment> environments = gitLabApi.getEnvironmentsApi().getEnvironments(projectId);

EpicsApi

// 获取请求的群组及其子群组的史诗列表 List<Epic> epics = gitLabApi.getEpicsApi().getEpics(1);

EventsApi

// 获取已认证用户的事件列表 Date after = new Date(0); // 纪元之后 Date before = new Date(); // 现在之前 List<Event> events = gitLabApi.getEventsApi().getAuthenticatedUserEvents(null, null, before, after, DESC);

GroupApi

// 获取您有权访问的群组列表 List<Group> groups = gitLabApi.getGroupApi().getGroups();

HealthCheckApi

// 获取活跃度端点健康检查结果。假设已按以下文档设置IP白名单: // https://docs.gitlab.com/ee/administration/monitoring/ip_whitelist.html HealthCheckInfo healthCheck = gitLabApi.getHealthCheckApi().getLiveness();

ImportExportApi

// 为指定的项目ID安排项目导出 gitLabApi.getImportExportApi().scheduleExport(projectId); // 获取指定项目ID的项目导出状态 ExportStatus exportStatus = gitLabApi.getImportExportApi().getExportStatus(projectId);

IssuesApi

// 获取指定项目ID的问题列表 List<Issue> issues = gitLabApi.getIssuesApi().getIssues(1234);

JobApi

// 获取指定项目ID的作业列表 List<Job> jobs = gitLabApi.getJobApi().getJobs(1234);

LabelsApi

// 获取指定项目ID的标签列表 List<Label> labels = gitLabApi.getLabelsApi().getLabels(1234);

LicenseApi

// 检索当前许可证的信息 License license = gitLabApi.getLicenseApi().getLicense();

LicenseTemplatesApi

// 获取开源许可证模板列表 List<LicenseTemplate> licenses = gitLabApi.getLicenseTemplatesApi().getLicenseTemplates();

MergeRequestApi

// 获取指定项目的合并请求列表 List<MergeRequest> mergeRequests = gitLabApi.getMergeRequestApi().getMergeRequests(1234);

MilestonesApi

// 获取指定项目的里程碑列表 List<Milestone> milestones = gitLabApi.getMilestonesApi().getMilestones(1234);

NamespaceApi

// 获取名称或路径中包含"foobar"的所有命名空间 List<Namespace> namespaces = gitLabApi.getNamespaceApi().findNamespaces("foobar");

NotesApi

// 获取项目ID为1234,问题IID为1的问题备注列表 List<Note> notes = gitLabApi.getNotesApi().getNotes(1234, 1);

NotificationSettingsApi

// 获取当前全局通知设置 NotificationSettings settings = gitLabApi.getNotificationSettingsApi().getGlobalNotificationSettings();

PackagesApi

// 获取指定项目ID的所有包 List<Packages> packages = gitLabApi.getPackagesApi().getPackages(1234);

PipelineApi

// 获取指定项目ID的所有流水线 List<Pipeline> pipelines = gitLabApi.getPipelineApi().getPipelines(1234);

ProjectApi

// 获取可访问的项目列表 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);

ProtectedBranchesApi

List<ProtectedBranch> branches = gitLabApi.getProtectedBranchesApi().getProtectedBranches(project.getId());

ReleasesApi

// 获取指定项目的发布列表 List<Release> releases = gitLabApi.getReleasesApi().getReleases(projectId);

RepositoryApi

// 获取项目的仓库分支列表,按名称字母顺序排序 List<Branch> branches = gitLabApi.getRepositoryApi().getBranches(projectId);
// 在项目中按名称搜索仓库分支 List<Branch> branches = gitLabApi.getRepositoryApi().getBranches(projectId, searchTerm);

RepositoryFileApi

// 获取仓库中文件的信息(名称、大小等)和内容 RepositoryFile file = gitLabApi.getRepositoryFileApi().getFile("file-path", 1234, "ref");

ResourceLabelEventsApi

// 获取指定合并请求的标签事件 List<LabelEvent> labelEvents = gitLabApi.getResourceLabelEventsApi() .getMergeRequestLabelEvents(projectId, mergeRequestIid);

RunnersApi

// 获取所有运行器 List<Runner> runners = gitLabApi.getRunnersApi().getAllRunners();

SearchApi

// 全局搜索项目 List<?> projects = gitLabApi.getSearchApi().globalSearch(SearchScope.PROJECTS, "要搜索的文本");

ServicesApi

// 激活/更新Slack通知服务 SlackService slackService = new SlackService() .withMergeRequestsEvents(true) .withWebhook("https://hooks.slack.com/services/ABCDEFGHI/KJLMNOPQR/wetrewq7897HKLH8998wfjjj") .withUsername("GitLab4J"); gitLabApi.getServicesApi().updateSlackService("project-path", slackService);

SessionApi

// 登录GitLab服务器并获取会话信息 gitLabApi.getSessionApi().login("你的用户名", "你的邮箱", "你的密码");

SnippetsApi

// 获取已认证用户的代码片段列表 List<Snippet> snippets = gitLabApi.getSnippetsApi().getSnippets();

SystemHooksApi

// 获取已安装的系统钩子列表 List<SystemHook> hooks = gitLabApi.getSystemHooksApi().getSystemHooks();

TagsApi

// 获取指定项目ID的标签列表 List<Tag> tags = gitLabApi.getTagsApi().getTags(projectId);

TodosApi

// 获取当前用户所有待办事项的列表 List<Todo> todos = gitLabApi.getTodosApi().gePendingTodos();

UserApi

// 获取用户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);

WikisApi

// 获取项目wiki中的页面列表 List<WikiPage> wikiPages = gitLabApi.getWikisApi().getPages();

</SOURCE_TEXT>

编辑推荐精选

Trae

Trae

字节跳动发布的AI编程神器IDE

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
问小白

问小白

全能AI智能助手,随时解答生活与工作的多样问题

问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。

热门AI助手AI对话AI工具聊天机器人
Transly

Transly

实时语音翻译/同声传译工具

Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

下拉加载更多