一、软件介绍
文末提供步伐和源码下载
DeepSeek Swift SDK 是一个轻量级且高效的基于 Swift 的客户端,用于与 DeepSeek API 进行交互。它支持聊天消息完成、流式处置惩罚、错误处置惩罚以及使用高级参数配置 DeepSeekLLM。
二、Features 特征
- Supports chat completion requests
支持聊天完成哀求
- Supports fill in the middle completion requests
支持添补中间完成哀求
- Handles error responses with detailed error descriptions and recovery suggestions.
使用详细的错误描述和规复建议处置惩罚错误相应。
- streaming responses both for chat completion and as well fill in the middle responses
用于聊天完成的流式处置惩罚相应,以及添补中间相应
- Built-in support for different models and advanced parameters
内置对不同模子和高级参数的支持
- User balance fetchin and available LLM models fetching
用户余额获取和可用LLM模子获取
- Uses Swift concurrency (async/await) for network calls
使用 Swift 并发 (async/await) 进行网络调用
三、Installation 安装
To integrate DeepSwiftSeek into your project, you can use Swift Package Manager (SPM):
要集成到 DeepSwiftSeek 您的项目中,您可以使用 Swift Package Manager (SPM):
- let package = Package(
- dependencies: [
- .package(url: "https://github.com/tornikegomareli/DeepSwiftSeek.git", exact: "0.0.2")
- ]
- )
复制代码 Or add it via Xcode:
或通过 Xcode 添加它:
- Open your project in Xcode.
在 Xcode 中打开您的项目。
- Navigate to File > Swift Packages > Add Package Dependency.
导航到 File > Swift Packages > Add Package Dependency。
- Enter the repository URL.
输入存储库 URL。
- Choose the latest version and click Next.
选择最新版本,然后单击 Next(下一步)。
Usage 用法
1. Initialize the Client 1. 初始化客户端
- import DeepSwiftSeek
- let configuration = Configuration(apiKey: "YOUR_API_KEY")
- let deepSeekClient = DeepSeekClient(configuration: configuration)
复制代码 2. Sending a Chat Completion Request
2. 发送聊天完成哀求
- Task {
- do {
- let response = try await deepSeekClient.chatCompletions(
- messages: {
- ChatMessageRequest(role: .user, content: "Tell me a joke.", name: "User")
- },
- model: .deepSeekChat,
- parameters: .creative
- )
- print(response.choices.first?.message.content ?? "No response")
- } catch {
- print("Error: \(error.localizedDescription)")
- }
- }
复制代码 3. Streaming Chat Completions
3. 流式聊天完成
- Task {
- do {
- let stream = try await deepSeekClient.chatCompletionStream(
- messages: {
- ChatMessageRequest(role: .user, content: "Write a poem.", name: "User")
- },
- model: .deepSeekChat,
- parameters: .streaming
- )
- for try await chunk in stream {
- print(chunk) // Prints streamed responses
- }
- } catch {
- print("Streaming error: \(error.localizedDescription)")
- }
- }
复制代码 4. Streaming FIM Completion
4. 流式 FIM 完成
- Task {
- do {
- let stream = try await deepSeekClient.fimCompletionStream(
- messages: {
- [
- ChatMessageRequest(
- role: .user,
- content: "function greet() {\n /* FIM_START */\n /* FIM_END */\n return 'Hello world';\n}",
- name: "User"
- )
- ]
- },
- model: .deepSeekReasoner,
- parameters: .streaming
- )
-
- for try await chunk in stream {
- // Each chunk is a streamed part of the fill-in-the-middle response.
- print("FIM Stream Chunk:\n\(chunk)")
- }
- } catch {
- print("FIM Streaming Error: \(error.localizedDescription)")
- }
- }
复制代码 5. Sending FIM Completion Request
5. 发送 FIM 完成哀求
- Task {
- do {
- let response = try await deepSeekClient.fimCompletions(
- messages: {
- [
- ChatMessageRequest(
- role: .user,
- content: "function greet() {\n // FIM_START\n // FIM_END\n return 'Hello world';\n}",
- name: "User"
- )
- ]
- },
- model: .deepSeekReasoner,
- parameters: .creative
- )
- if let content = response.choices.first?.message.content {
- print("FIM Completion:\n\(content)")
- }
- } catch {
- print("FIM Error: \(error.localizedDescription)")
- }
- }
复制代码 6. Getting List of Models
6. 获取模子列表
- Task {
- do {
- let response = try await deepSeekClient.listModels()
- } catch {
- print("ListModels Error: \(error.localizedDescription)")
- }
- }
复制代码 7. Getting Balance of the user
7. 获取用户的余额
- Task {
- do {
- let response = try await deepSeekClient.fetchUserBalance()
- } catch {
- print("UserBalance Error: \(error.localizedDescription)")
- }
- }
复制代码 8. Handling Errors 8. 处置惩罚错误
The SDK provides detailed error handling:
SDK 提供了详细的错误处置惩罚:
- catch let error as DeepSeekError {
- print("DeepSeek API Error: \(error.localizedDescription)")
- print("Recovery Suggestion: \(error.recoverySuggestion ?? "None")")
- } catch {
- print("Unexpected error: \(error)")
- }
复制代码 四、Models 模子
DeepSeek SDK supports multiple models:
DeepSeek SDK 支持多种模子:
- public enum DeepSeekModel: String {
- case deepSeekChat = "deepseek-chat"
- case deepSeekReasoner = "deepseek-reasoner"
- }
复制代码 Available Parameters 可用参数
You can configure chat completion parameters:
您可以配置聊天完成参数:
- let parameters = ChatParameters(
- frequencyPenalty: 0.5,
- maxTokens: 512,
- presencePenalty: 0.5,
- temperature: 0.7,
- topP: 0.9
- )
复制代码 Predefined Parameter Sets
预定义参数集
Mode 模式Temperature 温度Max Tokens 最大令牌数Top P 前 PCreative 创造性0.920480.9Focused 会合0.320480.3Streaming 流0.740960.9Code Generation 代码天生0.220480.95Concise 简明0.52560.5 Creating Custom Predefined Parameters
创建自定义预定义参数
If you need specific configurations, you can define your own parameter presets:
假如您须要特定配置,您可以定义本身的参数预设:
- extension ChatParameters {
- static let myCustomPreset = ChatParameters(
- frequencyPenalty: 0.4,
- maxTokens: 1024,
- presencePenalty: 0.6,
- temperature: 0.8,
- topP: 0.85
- )
- }
复制代码 Then use it in your requests:
然后在您的哀求中使用它:
- let parameters = ChatParameters.myCustomPreset
复制代码 This approach allows you to maintain reusable configurations tailored to different needs.
此方法允许您维护针对不同需求量身定制的可重用配置。
Error Handling 错误处置惩罚
DeepSeek SDK has built-in error handling for various API failures:
DeepSeek SDK 内置了针对各种 API 故障的错误处置惩罚功能:
Error Type 错误范例Description 描述invalidFormatInvalid request body format.
哀求正文格式无效。authenticationFailedIncorrect API key. API 密钥不准确。insufficientBalanceNo balance remaining. 没有余额。rateLimitReachedToo many requests sent.
发送的哀求过多。serverOverloadedHigh traffic on server.
服务器上的高流量。encodingErrorFailed to encode request body.
无法对哀求正文进行编码。 TODOs 都
- Improve documentation with more examples
通过更多示例改进文档
- SwiftUI full demo based on chat, history and reasoning
基于聊天、历史记录和推理的 SwiftUI 完备演示
- Reasoning model + OpenAI SDK
推理模子 + OpenAI SDK
五、软件下载
迅雷云盘
本文信息来源于GitHub作者地址:GitHub - tornikegomareli/DeepSwiftSeek: DeepSwiftSeek |