Supabase客户端开发与多语言支持
Supabase采用模块化架构设计,为开发者提供跨多种编程语言的官方客户端支持,包括JavaScript/TypeScript、Flutter、Swift和Python。这种架构确保了代码的可维护性、可扩展性和类型安全性,同时通过社区驱动模式扩展了更多语言支持,如C#/.NET、Go、Kotlin等。客户端库提供统一的功能分离设计,包括PostgREST数据库操作、GoTrue认证、Realtime实时订阅、Storage文件存储和Functions边缘函数调用。
官方客户端库架构设计
Supabase客户端库采用模块化架构设计,这一设计理念贯穿于所有官方支持的编程语言中。这种架构不仅确保了代码的可维护性和可扩展性,还为开发者提供了灵活的使用方式。
模块化架构核心设计
Supabase客户端库的核心设计原则是功能分离和独立封装。每个核心服务都有对应的独立客户端库,这些库可以单独使用,也可以通过主Supabase客户端进行统一管理。
graph TB
A[Supabase主客户端] --> B[PostgREST客户端]
A --> C[GoTrue认证客户端]
A --> D[Realtime实时客户端]
A --> E[Storage存储客户端]
A --> F[Functions函数客户端]
B --> G[数据库REST API]
C --> H[认证服务]
D --> I[实时订阅服务]
E --> J[文件存储服务]
F --> K[边缘函数服务]
分层架构设计
Supabase客户端库采用清晰的分层架构,确保各层职责明确:
| 层级 | 职责 | 示例组件 |
|---|---|---|
| 接口层 | 提供统一的API接口 | createClient(), supabase.auth, supabase.realtime |
| 服务层 | 封装具体服务功能 | PostgRESTClient, GoTrueClient, RealtimeClient |
| 传输层 | 处理网络通信 | HTTP客户端, WebSocket连接管理 |
| 工具层 | 提供辅助功能 | 类型定义, 错误处理, 配置管理 |
类型安全与代码生成
Supabase高度重视类型安全,通过自动生成的TypeScript定义文件确保开发体验:
// 自动生成的数据库类型定义
export interface Database {
public: {
Tables: {
profiles: {
Row: {
id: string
username: string
avatar_url: string | null
}
Insert: {
id: string
username: string
avatar_url?: string | null
}
Update: {
id?: string
username?: string
avatar_url?: string | null
}
}
}
}
}
// 类型安全的客户端使用
const supabase = createClient<Database>(supabaseUrl, supabaseKey)
const { data, error } = await supabase.from('profiles').select('*')
多语言一致性架构
Supabase官方客户端库在不同编程语言中保持一致的API设计:
flowchart LR
subgraph JavaScript/TypeScript
JS1[supabase-js]
JS2[postgrest-js]
JS3[gotrue-js]
JS4[realtime-js]
end
subgraph Dart/Flutter
D1[supabase-flutter]
D2[postgrest-dart]
D3[gotrue-dart]
D4[realtime-dart]
end
subgraph Python
P1[supabase-py]
P2[postgrest-py]
P3[gotrue-py]
P4[realtime-py]
end
subgraph Swift
S1[supabase-swift]
S2[postgrest-swift]
S3[auth-swift]
S4[realtime-swift]
end
JS1 -.-> D1
JS1 -.-> P1
JS1 -.-> S1
style JS1 fill:#e1f5fe
style D1 fill:#e1f5fe
style P1 fill:#e1f5fe
style S1 fill:#e1f5fe
配置管理与依赖注入
客户端库采用灵活的配置管理机制,支持多种配置方式:
// 基础配置
const supabase = createClient(SUPABASE_URL, SUPABASE_ANON_KEY)
// 高级配置
const supabase = createClient(SUPABASE_URL, SUPABASE_ANON_KEY, {
auth: {
autoRefreshToken: true,
persistSession: true,
detectSessionInUrl: true
},
global: {
headers: { 'X-Client-Info': 'my-app/1.0.0' }
},
realtime: {
params: { apikey: SUPABASE_ANON_KEY }
}
})
错误处理与重试机制
架构设计中包含了完善的错误处理体系:
| 错误类型 | 处理策略 | 重试机制 |
|---|---|---|
| 网络错误 | 自动重试 | 指数退避算法 |
| 认证错误 | Token刷新 | 单次重试 |
| 服务错误 | 错误转发 | 配置依赖 |
| 业务错误 | 用户处理 | 无重试 |
// 统一的错误处理接口
interface SupabaseError {
message: string
details?: string
hint?: string
code?: string
}
// 错误处理示例
const { data, error } = await supabase.from('posts').select('*')
if (error) {
switch (error.code) {
case 'PGRST301':
console.error('认证失败,需要重新登录')
break
case 'PGRST404':
console.error('资源不存在')
break
default:
console.error('未知错误:', error.message)
}
}
性能优化架构
客户端库内置多种性能优化机制:
- 连接池管理:复用HTTP连接,减少TCP握手开销
- 请求批处理:合并多个小请求,减少网络往返
- 缓存策略:智能缓存频繁访问的数据
- 懒加载:按需初始化服务组件
可扩展性设计
架构支持通过插件机制进行功能扩展:
// 自定义认证提供者示例
class CustomAuthProvider {
async signIn(email: string, password: string) {
// 自定义认证逻辑
}
}
// 注册自定义提供者
supabase.auth.registerProvider('custom', CustomAuthProvider)
这种模块化、分层化的架构设计使得Supabase客户端库既保持了使用的简便性,又具备了企业级应用所需的可扩展性和维护性。开发者可以根据项目需求选择使用完整的Supabase客户端,或者单独使用某个功能模块,这种灵活性是Supabase架构设计的重要优势。
JavaScript/TypeScript深度集成
Supabase在JavaScript/TypeScript生态系统中提供了全方位的深度集成支持,从客户端SDK到服务器端API,再到现代化的框架适配,为开发者构建全栈应用提供了完整的解决方案。
核心客户端SDK架构
Supabase的JavaScript客户端采用模块化设计,每个功能模块都是独立的实现:
import { createClient } from '@supabase/supabase-js'
const supabase = createClient(
process.env.SUPABASE_URL,
process.env.SUPABASE_ANON_KEY
)
这种设计使得开发者可以按需使用特定功能,同时保持代码的轻量性和灵活性。
TypeScript类型安全集成
Supabase提供了完整的TypeScript类型定义,确保开发过程中的类型安全:
import { createClient } from '@supabase/supabase-js'
import type { Database } from './database.types'
const supabase = createClient<Database>(
process.env.SUPABASE_URL,
process.env.SUPABASE_ANON_KEY
)
// 完全类型安全的查询
const { data, error } = await supabase
.from('profiles')
.select('id, username, avatar_url')
.eq('id', user.id)
.single()
现代化框架适配
Next.js集成模式
Supabase为Next.js提供了完整的服务器端和客户端适配方案:
// 服务器端客户端 (utils/supabase/server.ts)
import { createServerClient } from '@supabase/ssr'
import { cookies } from 'next/headers'
export async function createClient() {
const cookieStore = await cookies()
return createServerClient(
process.env.SUPABASE_URL,
process.env.SUPABASE_ANON_KEY,
{
cookies: {
getAll: () => cookieStore.getAll(),
setAll: (cookiesToSet) => {
cookiesToSet.forEach(({ name, value, options }) =>
cookieStore.set(name, value, options)
)
}
}
}
)
}
// 客户端客户端 (utils/supabase/client.ts)
import { createBrowserClient } from '@supabase/ssr'
export function createClient() {
return createBrowserClient(
process.env.SUPABASE_URL,
process.env.SUPABASE_ANON_KEY
)
}
React Hooks集成
import { useEffect, useState } from 'react'
import { createClient } from '@/utils/supabase/client'
import type { User } from '@supabase/supabase-js'
export function useUserProfile(userId: string) {
const [profile, setProfile] = useState(null)
const [loading, setLoading] = useState(true)
const supabase = createClient()
useEffect(() => {
async function loadProfile() {
const { data, error } = await supabase
.from('profiles')
.select('*')
.eq('id', userId)
.single()
if (!error) setProfile(data)
setLoading(false)
}
if (userId) loadProfile()
}, [userId, supabase])
return { profile, loading }
}
实时数据订阅
Supabase的Realtime功能为JavaScript应用提供了强大的实时数据同步能力:
// 实时订阅用户状态变化
const subscription = supabase
.channel('online-users')
.on(
'postgres_changes',
{
event: 'INSERT',
schema: 'public',
table: 'user_status'
},
(payload) => {
console.log('新用户上线:', payload.new)
}
)
.subscribe()
// 取消订阅
subscription.unsubscribe()
文件存储操作
JavaScript客户端提供了完整的文件存储API:
// 上传文件
const { data, error } = await supabase.storage
.from('avatars')
.upload(`${userId}/avatar.png`, file)
// 获取文件URL
const { data: { publicUrl } } = supabase.storage
.from('avatars')
.getPublicUrl(`${userId}/avatar.png`)
// 批量操作
const { data: files, error } = await supabase.storage
.from('documents')
.list('user-docs', {
limit: 100,
offset: 0,
sortBy: { column: 'name', order: 'asc' }
})
认证与授权
完整的身份验证流程集成:
// 邮箱密码登录
const { data, error } = await supabase.auth.signInWithPassword({
email: 'user@example.com',
password: 'password123'
})
// OAuth提供商登录
const { data, error } = await supabase.auth.signInWithOAuth({
provider: 'google',
options: {
redirectTo: `${window.location.origin}/auth/callback`
}
})
// 会话管理
const { data: { session } } = await supabase.auth.getSession()
const { data: { user } } = await supabase.auth.getUser()
// 退出登录
await supabase.auth.signOut()
错误处理与状态管理
// 统一的错误处理模式
async function updateUserProfile(updates: ProfileUpdate) {
try {
const { data, error } = await supabase
.from('profiles')
.update(updates)
.eq('id', user.id)
if (error) {
throw new Error(`更新失败: ${error.message}`)
}
return data
} catch (error) {
console.error('Profile update error:', error)
throw error
}
}
// 事务处理
async function transferFunds(from: string, to: string, amount: number) {
const { data, error } = await supabase.rpc('transfer_funds', {
from_account: from,
to_account: to,
transfer_amount: amount
})
if (error) {
await supabase.rpc('rollback_transfer', {
transaction_id: data.transaction_id
})
throw error
}
return data
}
性能优化策略
// 查询优化
const { data } = await supabase
.from('products')
.select('id, name, price, category(name)')
.range(0, 49)
.order('created_at', { ascending: false })
// 批量操作
const { data } = await supabase
.from('orders')
.insert([
{ user_id: 1, product_id: 101, quantity: 2 },
{ user_id: 1, product_id: 102, quantity: 1 },
{ user_id: 2, product_id: 101, quantity: 3 }
])
.select()
// 缓存策略
const { data } = await supabase
.from('blog_posts')
.select('*')
.eq('published', true)
.cache('5 minutes')
自定义函数调用
// 调用数据库函数
const { data, error } = await supabase
.rpc('calculate_order_total', { order_id: 123 })
// 带参数的类型安全调用
const { data: recommendations } = await supabase
.rpc('get_product_recommendations', {
user_id: currentUser.id,
limit: 10,
min_rating: 4.0
})
测试与调试
// 单元测试配置
import { createClient } from '@supabase/supabase-js'
const testSupabase = createClient(
process.env.TEST_SUPABASE_URL,
process.env.TEST_SUPABASE_ANON_KEY
)
// 调试日志
const supabase = createClient(
process.env.SUPABASE_URL,
process.env.SUPABASE_ANON_KEY,
{
global: {
headers: {
'X-Client-Info': 'my-app/v1.0'
}
},
auth: {
persistSession: true,
autoRefreshToken: true
}
}
)
Supabase的JavaScript/TypeScript集成不仅提供了基础的数据操作能力,更重要的是为现代Web开发提供了完整的解决方案。从类型安全的数据库操作到实时数据同步,从文件存储到用户认证,每一个功能模块都经过精心设计,确保开发者能够构建出高性能、可维护的现代化应用。
这种深度集成使得开发者可以专注于业务逻辑的实现,而不需要担心底层基础设施的复杂性,大大提高了开发效率和代码质量。
Flutter、Swift、Python多平台支持
Supabase作为现代化的后端即服务(BaaS)平台,为开发者提供了全面的多平台客户端支持。通过官方维护的Flutter、Swift和Python客户端库,开发者可以在移动端、桌面端和服务器端无缝集成Supabase的强大功能。
Flutter移动端开发
Flutter客户端(supabase-flutter)为跨平台移动应用开发提供了完整的解决方案。该客户端库采用模块化架构,每个功能模块都独立实现:
// Flutter客户端初始化
import 'package:supabase_flutter/supabase_flutter.dart';
void main() async {
await Supabase.initialize(
url: 'YOUR_SUPABASE_URL',
anonKey: 'YOUR_SUPABASE_ANON_KEY',
);
runApp(MyApp());
}
// 用户认证示例
final supabase = Supabase.instance.client;
final AuthResponse res = await supabase.auth.signUp(
email: 'example@email.com',
password: 'example-password',
);
// 数据库操作示例
final List<Map<String, dynamic>> data = await supabase
.from('countries')
.select()
.order('name', ascending: true);
Flutter客户端支持的主要功能模块:
| 模块名称 | 功能描述 | GitHub仓库 |
|---|---|---|
| postgrest-dart | RESTful API客户端 | supabase/postgrest-dart |
| gotrue-dart | 身份认证管理 | supabase/gotrue-dart |
| realtime-dart | 实时数据订阅 | supabase/realtime-dart |
| storage-dart | 文件存储管理 | supabase/storage-dart |
| functions-dart | 边缘函数调用 | supabase/functions-dart |
Swift原生iOS/macOS开发
Swift客户端(supabase-swift)为Apple生态系统提供了原生支持,采用Swift语言特性实现类型安全的API调用:
// Swift客户端初始化
import Supabase
let supabase = SupabaseClient(
supabaseURL: URL(string: "https://your-project.supabase.co")!,
supabaseKey: "your-anon-key"
)
// 用户认证示例
let result = try await supabase.auth.signUp(
email: "example@email.com",
password: "example-password"
)
// 数据库查询示例
let response: [Country] = try await supabase
.from("countries")
.select()
.order("name", ascending: true)
.execute()
.value
// 实时订阅示例
let channel = supabase.realtime.channel("public:countries")
let subscription = await channel
.on(.insert) { message in
print("New country inserted: \(message)")
}
.subscribe()
Swift客户端的架构设计遵循Apple平台的开发最佳实践:
classDiagram
class SupabaseClient {
+auth: AuthClient
+realtime: RealtimeClient
+storage: StorageClient
+functions: FunctionsClient
+from(_: String) PostgrestQueryBuilder
}
class AuthClient {
+signUp(email: String, password: String) AuthResponse
+signIn(email: String, password: String) AuthResponse
+signOut() Bool
+getSession() Session?
}
class RealtimeClient {
+channel(_: String) RealtimeChannel
+connect()
+disconnect()
}
class PostgrestQueryBuilder {
+select(_: String?) Self
+insert(_: Encodable) Self
+update(_: Encodable) Self
+delete() Self
+execute() async throws -> Response
}
SupabaseClient --> AuthClient
SupabaseClient --> RealtimeClient
SupabaseClient --> PostgrestQueryBuilder
Python服务器端与数据分析
Python客户端(supabase-py)为后端服务、数据分析和机器学习场景提供强大支持:
# Python客户端初始化
from supabase import create_client, Client
url: str = "https://your-project.supabase.co"
key: str = "your-anon-key"
supabase: Client = create_client(url, key)
# 用户认证示例
user = supabase.auth.sign_up({
"email": "example@email.com",
"password": "example-password"
})
# 数据库批量操作示例
data = supabase.table("countries").select("*").execute()
# 文件上传示例
with open("example.txt", "rb") as f:
supabase.storage.from_("bucket-name").upload("example.txt", f)
# 实时订阅示例(需要异步环境)
import asyncio
from supabase import create_client
async def realtime_example():
supabase = create_client(url, key)
async for message in supabase.realtime.on('INSERT', 'countries'):
print(f"New country: {message}")
asyncio.run(realtime_example())
Python客户端在数据科学工作流中的典型应用场景:
flowchart TD
A[数据采集] --> B[Supabase数据存储]
B --> C[Python数据处理]
C --> D[机器学习训练]
D --> E[模型部署]
E --> F[实时预测]
F --> G[结果存储回Supabase]
subgraph Supabase集成
B
G
end
subgraph Python生态
C
D
E
F
end
多平台功能对比
下表详细比较了三个平台客户端的功能支持情况:
| 功能特性 | Flutter | Swift | Python |
|---|---|---|---|
| 身份认证 | ✅ 完整支持 | ✅ 完整支持 | ✅ 完整支持 |
| 数据库CRUD | ✅ 完整支持 | ✅ 完整支持 | ✅ 完整支持 |
| 实时订阅 | ✅ WebSocket | ✅ WebSocket | ✅ WebSocket |
| 文件存储 | ✅ 完整支持 | ✅ 完整支持 | ✅ 完整支持 |
| 边缘函数 | ✅ 完整支持 | ✅ 完整支持 | ✅ 完整支持 |
| 类型安全 | ✅ Dart类型 | ✅ Swift类型 | ✅ Python类型提示 |
| 异步支持 | ✅ async/await | ✅ async/await | ✅ async/await |
| 错误处理 | ✅ 异常机制 | ✅ 异常机制 | ✅ 异常机制 |
开发最佳实践
Flutter开发建议:
- 使用Provider或Riverpod进行状态管理
- 实现自动令牌刷新机制
- 利用Flutter的响应式编程模式
Swift开发建议:
- 采用Combine框架处理数据流
- 使用Swift的并发模型(async/await)
- 实现适当的错误处理和解码机制
Python开发建议:
- 使用异步编程提高性能
- 实现适当的重试机制
- 利用Python的数据科学生态系统集成
性能优化策略
# Python客户端性能优化示例
from supabase import create_client
import asyncio
import aiohttp
# 使用连接池优化HTTP性能
session = aiohttp.ClientSession()
supabase = create_client(url, key, session=session)
# 批量操作减少网络请求
async def batch_operations():
tasks = []
for i in range(100):
task = supabase.table("items").insert({"value": i})
tasks.append(task)
# 使用asyncio.gather并行执行
results = await asyncio.gather(*tasks, return_exceptions=True)
三个平台客户端都经过精心设计和优化,确保了在不同应用场景下的高性能表现。无论是移动应用的实时数据同步,还是服务器端的大规模数据处理,Supabase的多平台支持都能提供稳定可靠的解决方案。
社区驱动客户端生态建设
Supabase的客户端生态建设采用了独特的社区驱动模式,这种模式不仅扩展了官方支持的语言范围,还为开发者提供了更加灵活和多样化的选择。社区驱动的客户端生态建设体现了开源项目的真正力量,让全球开发者能够共同参与和贡献。
社区客户端架构模式
Supabase采用模块化的客户端架构设计,每个功能模块都有独立的客户端实现。这种设计使得社区开发者可以专注于特定语言或特定功能的实现,而不需要重新发明整个客户端框架。
flowchart TD
A[Supabase核心服务] --> B[PostgREST API]
A --> C[GoTrue Auth]
A --> D[Realtime]
A --> E[Storage]
A --> F[Functions]
B --> G[社区客户端库]
C --> G
D --> G
E --> G
F --> G
G --> H[C#/.NET]
G --> I[Go语言]
G --> J[Kotlin]
G --> K[Ruby]
G --> L[Rust]
G --> M[Godot GDScript]
多语言客户端支持矩阵
Supabase社区已经为多种编程语言开发了完整的客户端支持,下表展示了当前社区驱动的客户端生态覆盖情况:
| 编程语言 | 完整客户端 | PostgREST | 认证 | 实时 | 存储 | 函数 |
|---|---|---|---|---|---|---|
| C#/.NET | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Go | ❌ | ✅ | ✅ | ❌ | ✅ | ✅ |
| Java | ❌ | ❌ | ✅ | ❌ | ✅ | ❌ |
| Kotlin | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Ruby | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Rust | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Godot | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
社区贡献机制
Supabase建立了完善的社区贡献机制,鼓励开发者参与客户端生态建设:
- 标准化接口规范:所有客户端库都遵循统一的API接口规范,确保跨语言的一致性
- 模块化设计:每个功能模块都可以独立实现和测试
- 文档协同:社区贡献的客户端都有详细的文档和示例
- 质量保障:通过CI/CD流程确保代码质量和兼容性
Kotlin客户端示例
Kotlin社区开发的Supabase客户端是一个典型的成功案例,展示了社区驱动的力量:
// 初始化Supabase客户端
val supabase = createSupabaseClient(
supabaseUrl = "https://your-project.supabase.co",
supabaseKey = "your-anon-key"
) {
install(Postgrest)
install(Auth)
install(Realtime)
install(Storage)
install(Functions)
}
// 认证示例
suspend fun signInWithEmail(email: String, password: String) {
val result = supabase.auth.signInWith(Email) {
this.email = email
this.password = password
}
println("用户已登录: ${result.user?.email}")
}
// 数据库操作示例
suspend fun fetchUserProfile(userId: UUID): Profile? {
return supabase.postgrest.from("profiles")
.select()
.eq("id", userId)
.single()
.decodeAs<Profile>()
}
// 实时订阅示例
val subscription = supabase.realtime.channel("public:profiles")
.on("UPDATE") { message ->
val updatedProfile = message.decodeAs<Profile>()
println("配置文件已更新: $updatedProfile")
}
.subscribe()
游戏开发集成
Godot引擎的GDScript客户端是社区驱动的另一个亮点,为游戏开发者提供了完整的Supabase集成:
# Godot GDScript Supabase集成
extends Node
var supabase: SupabaseClient
func _ready():
supabase = SupabaseClient.new()
supabase.initialize(
"https://your-project.supabase.co",
"your-anon-key"
)
# 连接认证事件
supabase.auth.connect("signed_in", self, "_on_signed_in")
supabase.auth.connect("signed_out", self, "_on_signed_out")
func _on_signed_in(user):
print("用户登录成功: ", user.email)
start_realtime_subscription()
func _on_signed_out():
print("用户已登出")
func start_realtime_subscription():
var channel = supabase.realtime.channel("game_events")
channel.on("INSERT", self, "_on_game_event")
channel.subscribe()
func _on_game_event(payload):
var event_data = payload.data
print("收到游戏事件: ", event_data)
社区治理模式
Supabase社区客户端生态采用分布式治理模式:
- 独立仓库管理:每个社区客户端都有独立的GitHub仓库
- 核心团队指导:Supabase核心团队提供技术指导和规范制定
- 社区主导开发:具体实现由社区开发者主导完成
- 定期同步机制:保持与官方API变化的同步更新
质量保障体系
为了确保社区客户端的质量,Supabase建立了完善的质量保障体系:
graph LR
A[API规范定义] --> B[参考实现]
B --> C[自动化测试]
C --> D[文档生成]
D --> E[发布验证]
E --> F[用户反馈]
F --> A
G[社区贡献] --> H[代码审查]
H --> I[集成测试]
I --> J[版本发布]
J --> K[持续维护]
生态建设成果
通过社区驱动的模式,Supabase客户端生态取得了显著成果:
- 语言覆盖广泛:支持超过10种编程语言和框架
- 功能完整性:大多数客户端都实现了完整的Supabase功能集
- 活跃的社区:每个客户端都有活跃的维护者和用户群体
- 持续更新:保持与官方API的同步更新和维护
这种社区驱动的客户端生态建设模式不仅扩展了Supabase的应用范围,还为开发者提供了更多选择,真正体现了开源协作的力量和价值。每个社区客户端都是开发者需求的真实反映,确保了Supabase能够在各种不同的技术栈和应用场景中发挥重要作用。
Supabase通过官方维护的客户端库和社区驱动的生态建设,为开发者提供了全面的多平台支持。其模块化架构设计确保了代码的一致性和可维护性,而TypeScript类型安全、实时数据订阅、完善的身份验证和错误处理机制等特性,大大提升了开发体验和代码质量。社区贡献机制使得Supabase能够快速扩展到更多编程语言和框架,真正体现了开源协作的价值。这种多语言客户端支持使开发者能够在移动端、Web端和服务器端无缝集成Supabase的强大功能,专注于业务逻辑而非基础设施复杂性。
Kimi-K2.5Kimi K2.5 是一款开源的原生多模态智能体模型,它在 Kimi-K2-Base 的基础上,通过对约 15 万亿混合视觉和文本 tokens 进行持续预训练构建而成。该模型将视觉与语言理解、高级智能体能力、即时模式与思考模式,以及对话式与智能体范式无缝融合。Python00- QQwen3-Coder-Next2026年2月4日,正式发布的Qwen3-Coder-Next,一款专为编码智能体和本地开发场景设计的开源语言模型。Python00
xw-cli实现国产算力大模型零门槛部署,一键跑通 Qwen、GLM-4.7、Minimax-2.1、DeepSeek-OCR 等模型Go06
PaddleOCR-VL-1.5PaddleOCR-VL-1.5 是 PaddleOCR-VL 的新一代进阶模型,在 OmniDocBench v1.5 上实现了 94.5% 的全新 state-of-the-art 准确率。 为了严格评估模型在真实物理畸变下的鲁棒性——包括扫描伪影、倾斜、扭曲、屏幕拍摄和光照变化——我们提出了 Real5-OmniDocBench 基准测试集。实验结果表明,该增强模型在新构建的基准测试集上达到了 SOTA 性能。此外,我们通过整合印章识别和文本检测识别(text spotting)任务扩展了模型的能力,同时保持 0.9B 的超紧凑 VLM 规模,具备高效率特性。Python00
KuiklyUI基于KMP技术的高性能、全平台开发框架,具备统一代码库、极致易用性和动态灵活性。 Provide a high-performance, full-platform development framework with unified codebase, ultimate ease of use, and dynamic flexibility. 注意:本仓库为Github仓库镜像,PR或Issue请移步至Github发起,感谢支持!Kotlin08
VLOOKVLOOK™ 是优雅好用的 Typora/Markdown 主题包和增强插件。 VLOOK™ is an elegant and practical THEME PACKAGE × ENHANCEMENT PLUGIN for Typora/Markdown.Less00