aisapi
Version:
A JavaScript/TypeScript API library for multiple AI providers
100 lines • 4.75 kB
JavaScript
;
/**
* 智谱AI (ChatGLM) 使用示例
*
* 在运行此示例前,请确保设置环境变量:
* ZHIPU_API_KEY=your_api_key
*
* 或在代码中直接提供API密钥(不推荐生产环境使用)
*/
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 zhipu_1 = require("./providers/zhipu");
function main() {
return __awaiter(this, void 0, void 0, function* () {
// 创建智谱AI提供商实例
const provider = new zhipu_1.ZhipuProvider({
apiKey: process.env.ZHIPU_API_KEY,
model: zhipu_1.ZhipuModel.GLM_3_TURBO // 使用GLM-3-Turbo模型
});
try {
// 示例1: 简单文本生成
console.log('=== 示例1: 简单文本生成 ===');
const response1 = yield provider.generateText({
prompt: '介绍一下ChatGLM模型的特点和优势',
maxTokens: 300
});
console.log(response1.text);
console.log('Token使用情况:', response1.usage);
console.log('\n');
// 示例2: 带系统消息的聊天
console.log('=== 示例2: 带系统消息的聊天 ===');
const response2 = yield provider.generateText({
systemMessage: '你是一位计算机科学领域专家,精通机器学习和深度学习技术。请用专业且易懂的语言回答问题。',
prompt: '解释一下大语言模型(LLM)的自监督学习方法和优缺点',
temperature: 0.6,
maxTokens: 500
});
console.log(response2.text);
console.log('\n');
// 示例3: 使用高级GLM-4模型
console.log('=== 示例3: 使用GLM-4模型 ===');
const glm4Provider = new zhipu_1.ZhipuProvider({
apiKey: process.env.ZHIPU_API_KEY,
model: zhipu_1.ZhipuModel.GLM_4 // 使用GLM-4模型
});
const response3 = yield glm4Provider.generateText({
prompt: '如何构建一个可靠的大型语言模型评估体系?请考虑多方面的指标和实现方法。',
maxTokens: 1000,
temperature: 0.4
});
console.log(response3.text);
console.log('\n');
// 示例4: 生成JSON格式的内容
console.log('=== 示例4: 生成JSON格式内容 ===');
const response4 = yield provider.generateJSON({
prompt: '生成一个包含5种常见的深度学习模型架构的列表,包括模型名称、发布年份、主要应用场景和核心创新点',
temperature: 0.2
});
console.log(JSON.stringify(response4, null, 2));
console.log('\n');
// 示例5: 流式响应示例
console.log('=== 示例5: 流式响应(打印事件ID) ===');
const stream = yield provider.createStreamingChatCompletion({
model: zhipu_1.ZhipuModel.GLM_3_TURBO,
messages: [
{ role: 'user', content: '简要介绍中国的AI发展历程' }
],
maxTokens: 300
});
console.log('开始接收流式响应...');
const reader = stream.getReader();
let result = '';
while (true) {
const { done, value } = yield reader.read();
if (done)
break;
// 这里只是简单示例,实际应用中需要根据API响应格式解析
const chunk = new TextDecoder().decode(value);
console.log('收到数据块:', chunk.substring(0, 50) + '...');
result += chunk;
}
console.log('流式响应完成');
console.log('\n');
}
catch (error) {
console.error('发生错误:', error);
}
});
}
// 执行主函数
main().catch(console.error);
//# sourceMappingURL=example-zhipu.js.map