Files

1 line
3.9 KiB
JSON

{"repo": "chelizichen/nqadvicesvr", "files": {"service/LLMService.ts": {"751f4c93421bcd5a1b49a3a0ddc5facadf3691a6": {"t": 1785746494.611278, "n": 1805, "h": "96e8bd3c2e0aeb4b", "c": "import { OpenAI } from \"openai\";\nimport { fetch as undiciFetch, Headers as UndiciHeaders, Request as UndiciRequest, Response as UndiciResponse, FormData as UndiciFormData, File as UndiciFile } from \"undici\";\nimport type { ChatCompletionMessageParam } from \"openai/resources\";\nimport { LLMError } from \"./errors\";\n\nexport class OpenAIClient{\n public openai: OpenAI;\n constructor() {\n // Node <18 lacks web fetch APIs; polyfill for OpenAI SDK\n if (!(globalThis as any).fetch) {\n (globalThis as any).fetch = undiciFetch as any;\n }\n if (!(globalThis as any).Headers) {\n (globalThis as any).Headers = UndiciHeaders as any;\n }\n if (!(globalThis as any).Request) {\n (globalThis as any).Request = UndiciRequest as any;\n }\n if (!(globalThis as any).Response) {\n (globalThis as any).Response = UndiciResponse as any;\n }\n if (!(globalThis as any).FormData) {\n (globalThis as any).FormData = UndiciFormData as any;\n }\n if (!(globalThis as any).File) {\n (globalThis as any).File = UndiciFile as any;\n }\n this.openai = new OpenAI({\n baseURL: process.env.OPENAI_URL,\n apiKey: process.env.OPENAI_API_KEY,\n fetch: undiciFetch as any,\n });\n }\n async generateWithList(promptList: Array<ChatCompletionMessageParam>) {\n try {\n const completion = await this.openai.chat.completions.create({\n messages: promptList,\n model: \"deepseek-reasoner\",\n stream: true,\n });\n return completion\n } catch (error) {\n throw new LLMError(`generateWithList error ${error}`)\n }\n // let text = '';\n // for await (const part of completion) {\n // const delta = part.choices[0].delta.content ?? '';\n // text += delta;\n // process.stdout.write(delta);\n // }\n // return text;\n }\n}"}, "910a4040d2f1d7ce945686ffc276f59c3f7bf98b": {"t": 1785764947.5655215, "n": 1805, "h": "96e8bd3c2e0aeb4b", "c": "import { OpenAI } from \"openai\";\nimport { fetch as undiciFetch, Headers as UndiciHeaders, Request as UndiciRequest, Response as UndiciResponse, FormData as UndiciFormData, File as UndiciFile } from \"undici\";\nimport type { ChatCompletionMessageParam } from \"openai/resources\";\nimport { LLMError } from \"./errors\";\n\nexport class OpenAIClient{\n public openai: OpenAI;\n constructor() {\n // Node <18 lacks web fetch APIs; polyfill for OpenAI SDK\n if (!(globalThis as any).fetch) {\n (globalThis as any).fetch = undiciFetch as any;\n }\n if (!(globalThis as any).Headers) {\n (globalThis as any).Headers = UndiciHeaders as any;\n }\n if (!(globalThis as any).Request) {\n (globalThis as any).Request = UndiciRequest as any;\n }\n if (!(globalThis as any).Response) {\n (globalThis as any).Response = UndiciResponse as any;\n }\n if (!(globalThis as any).FormData) {\n (globalThis as any).FormData = UndiciFormData as any;\n }\n if (!(globalThis as any).File) {\n (globalThis as any).File = UndiciFile as any;\n }\n this.openai = new OpenAI({\n baseURL: process.env.OPENAI_URL,\n apiKey: process.env.OPENAI_API_KEY,\n fetch: undiciFetch as any,\n });\n }\n async generateWithList(promptList: Array<ChatCompletionMessageParam>) {\n try {\n const completion = await this.openai.chat.completions.create({\n messages: promptList,\n model: \"deepseek-reasoner\",\n stream: true,\n });\n return completion\n } catch (error) {\n throw new LLMError(`generateWithList error ${error}`)\n }\n // let text = '';\n // for await (const part of completion) {\n // const delta = part.choices[0].delta.content ?? '';\n // text += delta;\n // process.stdout.write(delta);\n // }\n // return text;\n }\n}"}}}}