Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

🧬 Claude Code Java SDK

Java Maven License Stars


🔥 用Java调用AI编程,让你的应用拥有AI能力

"Java程序员的Claude Code SDK - 类似Claude Code CLI的Java实现"

⚡ 快速开始 · 📦 支持模型 · 🛠️ 内置工具 · 💬 交流


✨ 痛点解决方案

场景 以前 现在
🤖 Java应用想用AI 写一堆HTTP客户端代码 引入SDK,几行搞定
🌐 想换个大模型 重写整个调用逻辑 换一个Provider就行
🔧 需要Agent能力 自己实现Agent循环 内置AgentCore,开箱即用
🔌 需要本地模型 不知道咋集成 OllamaProvider直接支持

一个SDK,调用10+大模型 🔥


🎯 支持的模型

🌍 海外主流

模型 Provider 特点
🟣 Claude Anthropic 编程能力最强
🔵 GPT-4o OpenAI 生态最全
🟡 Gemini Google 视觉能力强
☁️ Azure OpenAI Microsoft 企业级

🇨🇳 国产大模型(性价比高)

模型 Provider 特点
🟢 DeepSeek 深度求索 性价比之王
🌙 月之暗面 Moonshot 128K超长上下文
📊 智谱GLM Zhipu 免费额度
🐲 通义千问 Tongyi 阿里生态
⭐ 讯飞星火 Spark 语音领域强
🏠 本地模型 Ollama Llama3/Qwen2本地运行
// 换模型就像换开关一样简单
Provider provider = new DeepSeekProvider(config);  // 换DeepSeek
Provider provider = new OpenAIProvider(config);     // 换OpenAI
Provider provider = new ZhipuProvider(config);      // 换智谱
// ... 10+ Provider任你选

🏗️ 项目结构

claude-code-java/
├── src/main/java/com/claude/codegen/
│   ├── ClaudeCode.java           # 主入口
│   ├── core/
│   │   └── AgentCore.java        # 🤖 Agent核心循环
│   ├── provider/                 # 🔌 大模型Provider
│   │   ├── Provider.java         # Provider接口
│   │   ├── ProviderFactory.java  # 工厂类
│   │   ├── AnthropicProvider.java
│   │   ├── OpenAIProvider.java
│   │   ├── DeepSeekProvider.java
│   │   ├── GeminiProvider.java
│   │   ├── AzureOpenAIProvider.java
│   │   ├── OllamaProvider.java
│   │   ├── MoonshotProvider.java
│   │   ├── ZhipuProvider.java
│   │   ├── TongyiProvider.java
│   │   └── SparkProvider.java
│   ├── tools/                    # 🛠️ 内置工具
│   │   ├── ToolSchema.java       # 工具定义
│   │   ├── FileTool.java         # 文件读写
│   │   ├── BashTool.java         # Shell执行
│   │   ├── SearchTool.java       # 网络搜索
│   │   └── DefaultTools.java     # 默认工具集
│   └── types/                    # 📝 类型定义
│       ├── ConversationItem.java
│       ├── ContentBlock.java
│       └── ProviderEvent.java
└── pom.xml

🚀 快速开始

1. 添加依赖

<!-- pom.xml -->
<dependency>
    <groupId>com.claude</groupId>
    <artifactId>claude-code-java</artifactId>
    <version>1.0.0</version>
</dependency>

2. 简单使用

import com.claude.codegen.*;
import com.claude.codegen.provider.*;

// 创建Provider(以DeepSeek为例)
DeepSeekProvider provider = DeepSeekProvider.builder()
    .apiKey("sk-xxx")
    .defaultModel("deepseek-chat")
    .build();

// 创建Agent
AgentCore agent = new AgentCore(provider);

// 添加内置工具
agent.addTools(DefaultTools.getDefaultTools());

// 开始对话
agent.chat("帮我写一个Hello World程序");

3. 流式输出

agent.chat("解释一下什么是AI", event -> {
    if (event instanceof ProviderEvent.AddContentBlock acb) {
        // 开始新内容块
    } else if (event instanceof ProviderEvent.UpdateContentBlock ucb) {
        // 更新内容(流式输出)
        System.out.print(ucb.getDelta());
    } else if (event instanceof ProviderEvent.EndMessage) {
        // 对话结束
    }
});

🛠️ 内置工具

工具 功能 示例
📁 FileTool 文件读写 读取/写入文件
🔧 BashTool Shell执行 运行命令
🔍 SearchTool 网络搜索 搜索信息

自定义工具

// 创建自定义工具
ToolSchema<ReadFileInput> readFileTool = ToolSchema.<ReadFileInput>builder()
    .name("read_file")
    .description("读取文件内容")
    .inputSchema(ReadFileInput.class)
    .handler((input) -> {
        return Files.readString(Path.of(input.path));
    })
    .build();

agent.addTool(readFileTool);

💡 使用场景

场景1:AI编程助手

// 让AI帮你写代码
agent.chat("用Java写一个快速排序");

场景2:智能客服

// 构建知识库 + RAG
agent.chat("你们支持退换货吗?");

场景3:代码审查

// 自动审查代码
agent.chat("审查这段代码有什么问题:\n" + code);

场景4:本地部署

// 使用本地Ollama模型
OllamaProvider provider = OllamaProvider.builder()
    .defaultModel("llama3")
    .build();
// 完全离线可用!

📊 对比同类产品

特性 Claude Code Java LangChain4j Spring AI
🤖 Agent核心 ✅ 原生支持 ⚠️ 有限 ⚠️ 有限
🔌 Provider数量 10+ 5 8
🇨🇳 国产模型 6个全支持
🏠 本地模型 Ollama Ollama
📦 体积 轻量
📝 流式输出 ✅ SSE

🔧 配置说明

DeepSeek(性价比推荐)

DeepSeekProvider.Config config = DeepSeekProvider.Config.builder()
    .apiKey("sk-xxx")
    .defaultModel("deepseek-chat")
    .maxTokens(4096)
    .build();

智谱AI(免费额度)

ZhipuProvider.Config config = ZhipuProvider.Config.builder()
    .apiKey("xxx")
    .defaultModel("glm-4-flash")  // 免费版
    .build();

Ollama(本地部署)

OllamaProvider.Config config = OllamaProvider.Config.builder()
    .baseUrl("http://localhost:11434/api/chat")
    .defaultModel("llama3")
    .build();
// 无需API Key,完全免费!

📄 License

MIT License - 商用免费 · 欢迎商用


🤝 如何贡献

# Fork 项目
git clone https://github.com/nplszfl/claude-code-java.git

# 添加新Provider
# 1. 实现Provider接口
# 2. 在ProviderFactory注册
# 3. 提交PR

📞 交流与支持

方式 链接
⭐ GitHub Star 点我Star
🐛 问题反馈 GitHub Issues

⭐ 用Java调用AI,从这里开始!

让Java应用拥有AI能力 🧬

About

Claude Code Java开发示例 | AI辅助编程 / Spring Boot模板

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages