1 line
6.5 KiB
JSON
1 line
6.5 KiB
JSON
{"repo": "0xzhangke/pdf2epubagent", "files": {"core/src/commonMain/kotlin/com/zhangke/agent/pdf2epub/core/llm/model/DeepSeekModel.kt": {"02ca8ea16c771ce743e7ffb01a0941a195e1e797": {"t": 1785745725.6053543, "n": 3032, "h": "bb9de7cf30a9447a", "c": "package com.zhangke.agent.pdf2epub.core.llm.model\n\nimport ai.koog.agents.core.agent.AIAgent\nimport ai.koog.agents.core.agent.GraphAIAgent\nimport ai.koog.agents.core.tools.ToolRegistry\nimport ai.koog.agents.features.eventHandler.feature.handleEvents\nimport ai.koog.prompt.executor.clients.openai.OpenAIClientSettings\nimport ai.koog.prompt.executor.clients.openai.OpenAILLMClient\nimport ai.koog.prompt.executor.llms.MultiLLMPromptExecutor\nimport ai.koog.prompt.llm.LLMCapability\nimport ai.koog.prompt.llm.LLMProvider\nimport ai.koog.prompt.llm.LLModel\nimport com.zhangke.agent.pdf2epub.core.llm.tool.AppendTextFileTool\nimport com.zhangke.agent.pdf2epub.core.llm.tool.BuildEpubTool\nimport com.zhangke.agent.pdf2epub.core.llm.tool.PdfToImagesTool\nimport com.zhangke.agent.pdf2epub.core.llm.tool.ReadTextFileTool\nimport com.zhangke.agent.pdf2epub.core.llm.tool.WriteTextFileTool\n\nfun buildDeepSeekAgent(\n systemPrompt: String,\n apiKey: String,\n baseUrl: String = DeepSeekDefaults.BASE_URL,\n model: LLModel = DeepSeekModels.CHAT,\n temperature: Double = 0.4,\n maxIterations: Int = 10,\n): GraphAIAgent<String, String> {\n require(apiKey.isNotBlank()) {\n \"DeepSeek API key is blank. Set DEEPSEEK_API_KEY or pass apiKey when creating LlmClient.\"\n }\n\n val client = OpenAILLMClient(\n apiKey = apiKey,\n settings = OpenAIClientSettings(\n baseUrl = baseUrl,\n chatCompletionsPath = \"v1/chat/completions\",\n modelsPath = \"v1/models\",\n ),\n )\n\n return AIAgent(\n promptExecutor = MultiLLMPromptExecutor(client),\n systemPrompt = systemPrompt,\n llmModel = model,\n temperature = temperature,\n toolRegistry = ToolRegistry {\n tool(AppendTextFileTool)\n tool(BuildEpubTool)\n tool(PdfToImagesTool)\n tool(ReadTextFileTool)\n tool(WriteTextFileTool)\n },\n maxIterations = maxIterations,\n ) {\n handleEvents {\n onToolCallStarting { eventContext ->\n println(\"Tool called: ${eventContext.toolName} with args ${eventContext.toolArgs}\")\n }\n }\n } as GraphAIAgent<String, String>\n}\n\nobject DeepSeekDefaults {\n\n const val BASE_URL = \"https://api.deepseek.com\"\n}\n\nobject DeepSeekModels {\n\n val CHAT: LLModel = LLModel(\n provider = LLMProvider.OpenAI,\n id = \"deepseek-chat\",\n capabilities = listOf(\n LLMCapability.Temperature,\n LLMCapability.Tools,\n LLMCapability.ToolChoice,\n LLMCapability.Completion,\n LLMCapability.MultipleChoices,\n LLMCapability.OpenAIEndpoint.Completions,\n ),\n )\n\n val REASONER: LLModel = LLModel(\n provider = LLMProvider.OpenAI,\n id = \"deepseek-reasoner\",\n capabilities = listOf(\n LLMCapability.Temperature,\n LLMCapability.Completion,\n LLMCapability.MultipleChoices,\n LLMCapability.OpenAIEndpoint.Completions,\n ),\n )\n}\n"}, "3058c9afa09089bb80231e236f3a70f15b05ae74": {"t": 1785755939.9645057, "n": 3032, "h": "bb9de7cf30a9447a", "c": "package com.zhangke.agent.pdf2epub.core.llm.model\n\nimport ai.koog.agents.core.agent.AIAgent\nimport ai.koog.agents.core.agent.GraphAIAgent\nimport ai.koog.agents.core.tools.ToolRegistry\nimport ai.koog.agents.features.eventHandler.feature.handleEvents\nimport ai.koog.prompt.executor.clients.openai.OpenAIClientSettings\nimport ai.koog.prompt.executor.clients.openai.OpenAILLMClient\nimport ai.koog.prompt.executor.llms.MultiLLMPromptExecutor\nimport ai.koog.prompt.llm.LLMCapability\nimport ai.koog.prompt.llm.LLMProvider\nimport ai.koog.prompt.llm.LLModel\nimport com.zhangke.agent.pdf2epub.core.llm.tool.AppendTextFileTool\nimport com.zhangke.agent.pdf2epub.core.llm.tool.BuildEpubTool\nimport com.zhangke.agent.pdf2epub.core.llm.tool.PdfToImagesTool\nimport com.zhangke.agent.pdf2epub.core.llm.tool.ReadTextFileTool\nimport com.zhangke.agent.pdf2epub.core.llm.tool.WriteTextFileTool\n\nfun buildDeepSeekAgent(\n systemPrompt: String,\n apiKey: String,\n baseUrl: String = DeepSeekDefaults.BASE_URL,\n model: LLModel = DeepSeekModels.CHAT,\n temperature: Double = 0.4,\n maxIterations: Int = 10,\n): GraphAIAgent<String, String> {\n require(apiKey.isNotBlank()) {\n \"DeepSeek API key is blank. Set DEEPSEEK_API_KEY or pass apiKey when creating LlmClient.\"\n }\n\n val client = OpenAILLMClient(\n apiKey = apiKey,\n settings = OpenAIClientSettings(\n baseUrl = baseUrl,\n chatCompletionsPath = \"v1/chat/completions\",\n modelsPath = \"v1/models\",\n ),\n )\n\n return AIAgent(\n promptExecutor = MultiLLMPromptExecutor(client),\n systemPrompt = systemPrompt,\n llmModel = model,\n temperature = temperature,\n toolRegistry = ToolRegistry {\n tool(AppendTextFileTool)\n tool(BuildEpubTool)\n tool(PdfToImagesTool)\n tool(ReadTextFileTool)\n tool(WriteTextFileTool)\n },\n maxIterations = maxIterations,\n ) {\n handleEvents {\n onToolCallStarting { eventContext ->\n println(\"Tool called: ${eventContext.toolName} with args ${eventContext.toolArgs}\")\n }\n }\n } as GraphAIAgent<String, String>\n}\n\nobject DeepSeekDefaults {\n\n const val BASE_URL = \"https://api.deepseek.com\"\n}\n\nobject DeepSeekModels {\n\n val CHAT: LLModel = LLModel(\n provider = LLMProvider.OpenAI,\n id = \"deepseek-chat\",\n capabilities = listOf(\n LLMCapability.Temperature,\n LLMCapability.Tools,\n LLMCapability.ToolChoice,\n LLMCapability.Completion,\n LLMCapability.MultipleChoices,\n LLMCapability.OpenAIEndpoint.Completions,\n ),\n )\n\n val REASONER: LLModel = LLModel(\n provider = LLMProvider.OpenAI,\n id = \"deepseek-reasoner\",\n capabilities = listOf(\n LLMCapability.Temperature,\n LLMCapability.Completion,\n LLMCapability.MultipleChoices,\n LLMCapability.OpenAIEndpoint.Completions,\n ),\n )\n}\n"}}}} |