rawi
Version:
Rawi (راوي) is the developer-friendly AI CLI that brings the power of 12 major AI providers directly to your terminal. With seamless shell integration, persistent conversations, and 200+ specialized prompt templates, Rawi transforms your command line into
1 lines • 3.92 kB
Source Map (JSON)
{"version":3,"sources":["/home/mkabumattar/withrawi/rawi/dist/chunk-ADQVXX4K.cjs","../src/core/providers/qwen.provider.ts"],"names":["qwenModelIds","qwenModels","name","qwenProvider","streamWithQwen","credentials","prompt","settings","apiKey","baseURL","createQwen","result","streamText","error"],"mappings":"AAAA;ACCA,8CAAyB,wBACA,IAYnBA,CAAAA,CAAe,CACnB,yBAAA,CACA,sBAAA,CACA,sBAAA,CACA,sBAAA,CACA,qBAAA,CACA,yBAAA,CACA,wBAAA,CACA,UAAA,CACA,iBAAA,CACA,qBAAA,CACA,WAAA,CACA,kBAAA,CACA,sBAAA,CACA,YAAA,CACA,mBAAA,CACA,uBAAA,CACA,aAAA,CACA,cAAA,CACA,yBAAA,CACA,wBAAA,CACA,wBACF,CAAA,CAEaC,CAAAA,aAA0BD,CAAAA,CAAa,GAAA,CAAKE,CAAAA,EAAAA,CAAU,CACjE,IAAA,CAAAA,CAAAA,CACA,WAAA,CAAaA,CACf,CAAA,CAAE,CAAA,CAEWC,CAAAA,aAAe,CAC1B,IAAA,CAAM,MAAA,CACN,WAAA,CAAa,gCAAA,CACb,MAAA,CAAQF,CACV,CAAA,CAEaG,CAAAA,aAAiB,KAAA,CAC5BC,CAAAA,CACAC,CAAAA,CAAAA,EAC+B,CAC/B,GAAI,CACF,IAAMC,CAAAA,CAAWF,CAAAA,CAAY,gBAAA,CAEvBG,CAAAA,iBAASD,CAAAA,2BAAU,QAAA,EAAUF,CAAAA,CAAY,MAAA,CAE/C,EAAA,CAAI,CAACG,CAAAA,CACH,MAAM,IAAI,KAAA,CAAM,8BAA8B,CAAA,CAGhD,IAAMC,CAAAA,iBACJF,CAAAA,6BAAU,SAAA,EACV,wDAAA,CAEIJ,CAAAA,CAAeO,8BAAAA,CACnB,MAAA,CAAQF,CAAAA,CACR,OAAA,CAASC,CACX,CAAC,CAAA,CAEKE,CAAAA,CAASC,4BAAAA,CACb,KAAA,CAAOT,CAAAA,CAAaE,CAAAA,CAAY,KAAK,CAAA,CACrC,MAAA,CAAAC,CAAAA,CACA,WAAA,CAAaD,CAAAA,CAAY,WAAA,EAAe,EAAA,CACxC,SAAA,CAAWA,CAAAA,CAAY,SAAA,EAAa,IACtC,CAAC,CAAA,CAED,MAAO,CACL,UAAA,CAAYM,CAAAA,CAAO,UAAA,CACnB,YAAA,CAAcA,CAAAA,CAAO,IACvB,CACF,CAAA,KAAA,CAASE,CAAAA,CAAO,CACd,MAAM,IAAI,KAAA,CACR,CAAA,kCAAA,EACEA,EAAAA,WAAiB,KAAA,CAAQA,CAAAA,CAAM,OAAA,CAAU,MAAA,CAAOA,CAAK,CACvD,CAAA,CAAA;ADpFqkC","file":"/home/mkabumattar/withrawi/rawi/dist/chunk-ADQVXX4K.cjs","sourcesContent":[null,"import type {qwen} from '@ai-sdk-community/qwen';\nimport {createQwen} from '@ai-sdk-community/qwen';\nimport {streamText} from 'ai';\nimport type {\n LooseToStrict,\n ModelInfo,\n QwenSettings,\n RawiCredentials,\n StreamingResponse,\n} from '../shared/index.js';\n\ntype LooseQwenModelId = Parameters<typeof qwen>[0];\nexport type QwenModelId = LooseToStrict<LooseQwenModelId>;\n\nconst qwenModelIds = [\n 'qwen2.5-14b-instruct-1m',\n 'qwen2.5-72b-instruct',\n 'qwen2.5-32b-instruct',\n 'qwen2.5-14b-instruct',\n 'qwen2.5-7b-instruct',\n 'qwen2-57b-a14b-instruct',\n 'qwen2.5-7b-instruct-1m',\n 'qwen-max',\n 'qwen-max-latest',\n 'qwen-max-2025-01-25',\n 'qwen-plus',\n 'qwen-plus-latest',\n 'qwen-plus-2025-01-25',\n 'qwen-turbo',\n 'qwen-turbo-latest',\n 'qwen-turbo-2024-11-01',\n 'qwen-vl-max',\n 'qwen-vl-plus',\n 'qwen2.5-vl-72b-instruct',\n 'qwen2.5-vl-7b-instruct',\n 'qwen2.5-vl-3b-instruct',\n] as const;\n\nexport const qwenModels: ModelInfo[] = qwenModelIds.map((name) => ({\n name,\n displayName: name,\n}));\n\nexport const qwenProvider = {\n name: 'qwen' as const,\n displayName: '🟡 Qwen (Alibaba Cloud)',\n models: qwenModels,\n};\n\nexport const streamWithQwen = async (\n credentials: RawiCredentials,\n prompt: string,\n): Promise<StreamingResponse> => {\n try {\n const settings = credentials.providerSettings as QwenSettings | undefined;\n\n const apiKey = settings?.apiKey || credentials.apiKey;\n\n if (!apiKey) {\n throw new Error('API key is required for Qwen');\n }\n\n const baseURL =\n settings?.baseURL ||\n 'https://dashscope-intl.aliyuncs.com/compatible-mode/v1';\n\n const qwenProvider = createQwen({\n apiKey: apiKey,\n baseURL: baseURL,\n });\n\n const result = streamText({\n model: qwenProvider(credentials.model),\n prompt,\n temperature: credentials.temperature || 0.7,\n maxTokens: credentials.maxTokens || 2048,\n });\n\n return {\n textStream: result.textStream,\n fullResponse: result.text,\n };\n } catch (error) {\n throw new Error(\n `Error calling Qwen streaming API: ${\n error instanceof Error ? error.message : String(error)\n }`,\n );\n }\n};\n"]}