aisapi
Version:
A JavaScript/TypeScript API library for multiple AI providers
139 lines • 7.74 kB
JavaScript
;
/**
* DeepSeek API使用示例
* 展示如何使用DeepSeek和特有功能
*/
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const index_1 = require("./index");
// 请将你的API密钥替换为实际值
// 推荐使用环境变量存储API密钥
const DEEPSEEK_API_KEY = process.env.DEEPSEEK_API_KEY || 'your-deepseek-api-key';
function main() {
return __awaiter(this, void 0, void 0, function* () {
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
console.log('===== DeepSeek API使用示例 =====');
// 创建DeepSeek实例,启用缓存监控
const deepseek = new index_1.DeepSeek({
apiKey: DEEPSEEK_API_KEY,
model: 'deepseek-chat', // 默认使用通用对话模型
enableCacheMonitoring: true // 启用缓存监控
});
// 1. 基本文本生成
console.log('\n1. 基本文本生成');
try {
const result = yield deepseek.generateText({
prompt: '请用简短的语言解释什么是大型语言模型',
maxTokens: 200,
temperature: 0.7
});
console.log('回答:', result.text);
console.log('Token使用:', result.usage);
// 显示缓存信息
if (result.cacheInfo) {
console.log('缓存信息:');
console.log(`- 缓存命中Token: ${result.cacheInfo.hitTokens}`);
console.log(`- 缓存未命中Token: ${result.cacheInfo.missTokens}`);
console.log(`- 缓存命中率: ${(result.cacheInfo.hitRate || 0) * 100}%`);
console.log(`- 估计节省成本: $${(result.cacheInfo.estimatedSavings || 0).toFixed(6)}`);
}
}
catch (error) {
console.error('文本生成错误:', error.message);
}
// 2. 链式推理 (Chain-of-Thought)
console.log('\n2. 链式推理示例 (使用deepseek-reasoner模型)');
try {
const cotResult = yield deepseek.chainOfThought({
prompt: '如果一个球从10米高的地方落下,它的动能是如何变化的?请详细分析',
temperature: 0.3,
maxTokens: 500
});
console.log('链式推理回答:');
console.log(cotResult.text);
console.log('\nToken使用:', cotResult.usage);
// 显示缓存信息
if (cotResult.cacheInfo) {
console.log('缓存信息:');
console.log(`- 缓存命中率: ${(cotResult.cacheInfo.hitRate || 0) * 100}%`);
console.log(`- 估计节省成本: $${(cotResult.cacheInfo.estimatedSavings || 0).toFixed(6)}`);
}
}
catch (error) {
console.error('链式推理错误:', error.message);
}
// 3. JSON格式生成
console.log('\n3. JSON格式生成');
try {
const jsonResult = yield deepseek.generateJSON({
prompt: '请给我三个世界著名的科学家,包含姓名、主要成就和出生年份,以JSON格式返回',
temperature: 0.5
});
console.log('JSON结果:');
console.log(JSON.stringify(jsonResult.data, null, 2));
}
catch (error) {
console.error('JSON生成错误:', error.message);
}
// 4. 缓存统计信息
console.log('\n4. 缓存统计信息');
const cacheStats = deepseek.getCacheStats();
console.log('缓存使用总结:');
console.log(`- 总请求数: ${cacheStats.totalRequests}`);
console.log(`- 总缓存命中Token: ${cacheStats.totalHitTokens}`);
console.log(`- 总缓存未命中Token: ${cacheStats.totalMissTokens}`);
console.log(`- 总输出Token: ${cacheStats.totalOutputTokens}`);
console.log(`- 总体缓存命中率: ${(cacheStats.hitRate * 100).toFixed(2)}%`);
console.log(`- 总计节省成本: $${cacheStats.estimatedSavings.toFixed(6)}`);
// 5. 连续多次调用以展示缓存效果
console.log('\n5. 连续多次调用相同提示以展示缓存效果');
const prompt = '请简要解释量子计算的基本原理';
console.log('第一次调用 (可能没有缓存命中):');
try {
const firstCall = yield deepseek.generateText({ prompt, maxTokens: 100 });
console.log(`- 缓存命中Token: ${((_a = firstCall.cacheInfo) === null || _a === void 0 ? void 0 : _a.hitTokens) || 0}`);
console.log(`- 缓存未命中Token: ${((_b = firstCall.cacheInfo) === null || _b === void 0 ? void 0 : _b.missTokens) || 0}`);
console.log(`- 缓存命中率: ${((((_c = firstCall.cacheInfo) === null || _c === void 0 ? void 0 : _c.hitRate) || 0) * 100).toFixed(2)}%`);
console.log('\n第二次调用 (应该有缓存命中):');
const secondCall = yield deepseek.generateText({ prompt, maxTokens: 100 });
console.log(`- 缓存命中Token: ${((_d = secondCall.cacheInfo) === null || _d === void 0 ? void 0 : _d.hitTokens) || 0}`);
console.log(`- 缓存未命中Token: ${((_e = secondCall.cacheInfo) === null || _e === void 0 ? void 0 : _e.missTokens) || 0}`);
console.log(`- 缓存命中率: ${((((_f = secondCall.cacheInfo) === null || _f === void 0 ? void 0 : _f.hitRate) || 0) * 100).toFixed(2)}%`);
console.log('\n第三次调用 (应该有更高的缓存命中):');
const thirdCall = yield deepseek.generateText({ prompt, maxTokens: 100 });
console.log(`- 缓存命中Token: ${((_g = thirdCall.cacheInfo) === null || _g === void 0 ? void 0 : _g.hitTokens) || 0}`);
console.log(`- 缓存未命中Token: ${((_h = thirdCall.cacheInfo) === null || _h === void 0 ? void 0 : _h.missTokens) || 0}`);
console.log(`- 缓存命中率: ${((((_j = thirdCall.cacheInfo) === null || _j === void 0 ? void 0 : _j.hitRate) || 0) * 100).toFixed(2)}%`);
// 更新后的缓存统计
console.log('\n更新后的缓存统计:');
const updatedStats = deepseek.getCacheStats();
console.log(`- 总体缓存命中率: ${(updatedStats.hitRate * 100).toFixed(2)}%`);
console.log(`- 总计节省成本: $${updatedStats.estimatedSavings.toFixed(6)}`);
}
catch (error) {
console.error('缓存测试错误:', error.message);
}
// 重置缓存统计信息
console.log('\n重置缓存统计信息');
deepseek.resetCacheStats();
console.log('缓存统计已重置');
});
}
// 检查API密钥是否已设置
if (DEEPSEEK_API_KEY === 'your-deepseek-api-key') {
console.log('请设置你的DeepSeek API密钥后再运行此示例。');
console.log('可以通过环境变量设置: export DEEPSEEK_API_KEY="你的密钥"');
}
else {
// 运行示例
main().catch(console.error);
}
//# sourceMappingURL=example-deepseek.js.map