UNPKG

aisapi

Version:

A JavaScript/TypeScript API library for multiple AI providers

139 lines 7.74 kB
"use strict"; /** * 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