DeepSeek API Key怎么复制到项目里?
把DeepSeek API Key安全、正确地复制进Android项目,是调用AI能力的第一道硬门槛——粘错位置、漏掉Bearer前缀、或存进明文代码里,都会导致请求401失败甚至密钥泄露。
先说几个核心判断:密钥管理这事儿,看似小事,但坑不少。很多开发者在这个环节踩过跟头,比如密钥复制不全、存进Git仓库、或者直接用明文写在代码里。下面从获取、存储到注入,一步步拆解,保证你少走弯路。
获取并验证API Key有效性
登录DeepSeek开发者平台,进入「API Keys」页面,点击「Create API Key」,填写名称(比如android-prod-key),选择权限(至少勾选text/generate),完成二次验证后生成密钥。
关键一步:必须立刻完整复制密钥
复制后,先别急着写代码。在浏览器新开标签页访问 https://api.deepseek.com/v1/models,手动发起一次测试请求(用curl或Postman都行),Header中填 Authorization: Bearer sk-xxx,确认返回200及模型列表。这步验证能避开90%的“密钥已复制但实际无效”的假成功——毕竟,验证比调试省时间。
在Android项目中安全存储密钥
这里有两个主流方案,区别在于安全性等级和使用场景。
方法一:使用gradle.properties + BuildConfig(推荐给调试/测试环境)
在项目根目录下
gradle.properties 文件末尾添加:DEEPSEEK_API_KEY=sk-abc123def456...然后在模块级
build.gradle 中启用:buildConfigField "String", "DEEPSEEK_API_KEY", ""${DEEPSEEK_API_KEY}""
⚠️ 注意:此方式会将密钥编译进APK字节码,仅限开发阶段;上线前必须切换为方法二。否则,反编译工具几分钟就能提取出来。
方法二:通过Android Keystore + 自定义密钥管理类(生产环境强制要求)
新建
DeepSeekKeyManager.kt,调用 KeyStore.getInstance("AndroidKeyStore") 生成AES密钥,然后用该密钥加密你的API Key,最后存入 EncryptedSharedPreferences。
这一步不能跳过:直接把API Key硬编码在 strings.xml 或 Kotlin 文件里,反编译工具3分钟就能提取出来,等于把服务器密码贴在APP安装包封面上。行业共识是:生产环境必须使用硬件级加密存储。
在Retrofit网络请求中注入密钥
第一步:定义OkHttpClient拦截器
创建 AuthInterceptor.kt,重写 intercept() 方法,在请求头中动态注入认证信息:
request.newBuilder()
.header("Authorization", "Bearer ${BuildConfig.DEEPSEEK_API_KEY}")
.build()
第二步:配置Retrofit Builder
在初始化 Retrofit 实例时,将该拦截器传入 OkHttpClient.Builder().addInterceptor(AuthInterceptor())。这种注入方式的好处是:所有请求自动携带认证头,不用在每个接口方法里重复声明。
第三步:检查请求路径是否匹配DeepSeek最新Endpoint
确保你调用的是 https://api.deepseek.com/v1/chat/completions,而不是旧版 /v1/text/generate 或拼错为 deepseek.ai——后者会返回DNS错误,且不提示具体原因。这点很坑,但也很容易排查:检查一下URL拼写即可。

最后总结一下:获取密钥时完整复制并验证;开发阶段用gradle.properties+BuildConfig偷懒;生产环境必须上Android Keystore加密;Retrofit中用拦截器统一注入;请求地址务必核对。做到这几点,密钥安全和API调用就没问题了。