@luanpoppe/ai 1.0.9 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +36 -18
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +28 -12
- package/dist/index.js.map +1 -1
- package/dist/langchain/audio-transcription.d.ts +5 -2
- package/dist/langchain/audio-transcription.d.ts.map +1 -1
- package/dist/langchain/audio-transcription.js +49 -44
- package/dist/langchain/audio-transcription.js.map +1 -1
- package/dist/langchain/messages.d.ts +1 -1
- package/dist/langchain/messages.d.ts.map +1 -1
- package/dist/langchain/messages.js +4 -4
- package/dist/langchain/messages.js.map +1 -1
- package/dist/langchain/models.d.ts +2 -5
- package/dist/langchain/models.d.ts.map +1 -1
- package/dist/langchain/models.js +4 -4
- package/dist/langchain/models.js.map +1 -1
- package/dist/langchain/tools.d.ts +1 -1
- package/dist/langchain/tools.d.ts.map +1 -1
- package/dist/langchain/tools.js +3 -3
- package/dist/langchain/tools.js.map +1 -1
- package/docs/LANGCHAIN_WHISPER_WINDOWS_BUG.md +209 -0
- package/package.json +2 -1
- package/src/index.ts +55 -27
- package/src/langchain/audio-transcription.ts +57 -47
- package/src/langchain/messages.ts +7 -8
- package/src/langchain/models.ts +3 -3
- package/src/langchain/tools.ts +1 -1
- package/tests/e2e/@fixtures/audio-teste-saudacao.mp3 +0 -0
- package/tests/e2e/ai-audio.test.ts +210 -0
- package/tests/e2e/{langchain.test.ts → ai.test.ts} +189 -254
- package/tests/unit/index.test.ts +77 -57
- package/tests/unit/langchain/audio-transcription.test.ts +108 -304
- package/tests/unit/langchain/messages.test.ts +15 -15
- package/tests/unit/langchain/models.test.ts +14 -14
- package/tests/unit/langchain/tools.test.ts +12 -10
package/dist/index.d.ts
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { AIModels, LLMModelConfig } from "./langchain/models";
|
|
2
2
|
import { AIModelNames } from "./@types/model-names";
|
|
3
3
|
import z from "zod";
|
|
4
4
|
import { MessageInput } from "./langchain/messages";
|
|
5
|
-
import { AgentMiddleware, BaseMessage } from "langchain";
|
|
5
|
+
import { AgentMiddleware, BaseMessage, createAgent } from "langchain";
|
|
6
6
|
import { ClientTool, ServerTool } from "@langchain/core/tools";
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
type
|
|
7
|
+
import { AIMessages } from "./langchain/messages";
|
|
8
|
+
import { AITools } from "./langchain/tools";
|
|
9
|
+
type AIConstructor = {
|
|
10
10
|
googleGeminiToken?: string;
|
|
11
11
|
openAIApiKey?: string;
|
|
12
12
|
openRouterApiKey?: string;
|
|
13
13
|
};
|
|
14
|
-
export type
|
|
14
|
+
export type AICallParams = {
|
|
15
15
|
agent?: {
|
|
16
16
|
middleware?: AgentMiddleware[];
|
|
17
17
|
tools?: (ServerTool | ClientTool)[];
|
|
@@ -22,38 +22,56 @@ export type LangchainCallParams = {
|
|
|
22
22
|
systemPrompt?: string;
|
|
23
23
|
maxRetries?: number;
|
|
24
24
|
};
|
|
25
|
-
export type
|
|
25
|
+
export type AICallReturn = Promise<{
|
|
26
26
|
text: string;
|
|
27
27
|
messages: BaseMessage[];
|
|
28
28
|
}>;
|
|
29
|
-
export type
|
|
29
|
+
export type AICallStructuredOutputParams<T extends z.ZodSchema> = AICallParams & {
|
|
30
30
|
outputSchema: T;
|
|
31
31
|
};
|
|
32
|
-
export type
|
|
32
|
+
export type AICallStructuredOutputReturn<T> = Promise<{
|
|
33
33
|
response: z.infer<T>;
|
|
34
34
|
}>;
|
|
35
|
-
export declare class
|
|
35
|
+
export declare class AI {
|
|
36
36
|
private tokens;
|
|
37
|
-
constructor(tokens:
|
|
38
|
-
call(params:
|
|
39
|
-
callStructuredOutput<T extends z.ZodSchema>(params:
|
|
37
|
+
constructor(tokens: AIConstructor);
|
|
38
|
+
call(params: AICallParams): AICallReturn;
|
|
39
|
+
callStructuredOutput<T extends z.ZodSchema>(params: AICallStructuredOutputParams<T>): AICallStructuredOutputReturn<typeof params.outputSchema>;
|
|
40
40
|
/**
|
|
41
41
|
* Normaliza schemas Zod para compatibilidade com OpenAI/OpenRouter
|
|
42
42
|
* OpenAI exige que todos os campos em properties estejam no array required
|
|
43
43
|
* quando usa response_format: 'extract'
|
|
44
44
|
*/
|
|
45
45
|
private normalizeSchemaForOpenAI;
|
|
46
|
-
getRawAgent(params:
|
|
47
|
-
agent:
|
|
46
|
+
getRawAgent(params: AICallParams, outputSchema?: z.ZodSchema | undefined): {
|
|
47
|
+
agent: ReturnType<typeof createAgent>;
|
|
48
48
|
};
|
|
49
49
|
private getModel;
|
|
50
50
|
private standardAgent;
|
|
51
51
|
private standardMiddlewares;
|
|
52
52
|
}
|
|
53
|
-
export {
|
|
54
|
-
export {
|
|
53
|
+
export { AIModels, AIMessages, AITools };
|
|
54
|
+
export { AIAudioTranscription } from "./langchain/audio-transcription";
|
|
55
55
|
export { AudioUtils } from "./utils/audio-utils";
|
|
56
56
|
export type { AudioBuffer, AudioMimeType } from "./@types/audio";
|
|
57
57
|
export type { AudioContentBlock, HumanMessageWithAudioOptions, } from "./langchain/messages";
|
|
58
|
-
export type { WhisperTranscriptionOptions } from "./langchain/audio-transcription";
|
|
58
|
+
export type { WhisperModel, WhisperTranscriptionOptions, } from "./langchain/audio-transcription";
|
|
59
|
+
/** @deprecated Use AI instead. Will be removed in 2.0.0 */
|
|
60
|
+
export { AI as Langchain };
|
|
61
|
+
/** @deprecated Use AICallParams instead. Will be removed in 2.0.0 */
|
|
62
|
+
export type LangchainCallParams = AICallParams;
|
|
63
|
+
/** @deprecated Use AICallReturn instead. Will be removed in 2.0.0 */
|
|
64
|
+
export type LangchainCallReturn = AICallReturn;
|
|
65
|
+
/** @deprecated Use AICallStructuredOutputParams instead. Will be removed in 2.0.0 */
|
|
66
|
+
export type LangchainCallStructuredOutputParams<T extends z.ZodSchema> = AICallStructuredOutputParams<T>;
|
|
67
|
+
/** @deprecated Use AICallStructuredOutputReturn instead. Will be removed in 2.0.0 */
|
|
68
|
+
export type LangchainCallStructuredOutputReturn<T> = AICallStructuredOutputReturn<T>;
|
|
69
|
+
/** @deprecated Use AIModels instead. Will be removed in 2.0.0 */
|
|
70
|
+
export { AIModels as LangchainModels } from "./langchain/models";
|
|
71
|
+
/** @deprecated Use AIMessages instead. Will be removed in 2.0.0 */
|
|
72
|
+
export { AIMessages as LangchainMessages } from "./langchain/messages";
|
|
73
|
+
/** @deprecated Use AITools instead. Will be removed in 2.0.0 */
|
|
74
|
+
export { AITools as LangchainTools } from "./langchain/tools";
|
|
75
|
+
/** @deprecated Use AIAudioTranscription instead. Will be removed in 2.0.0 */
|
|
76
|
+
export { AIAudioTranscription as LangchainAudioTranscription } from "./langchain/audio-transcription";
|
|
59
77
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -3,16 +3,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.AudioUtils = exports.
|
|
6
|
+
exports.LangchainAudioTranscription = exports.LangchainTools = exports.LangchainMessages = exports.LangchainModels = exports.Langchain = exports.AudioUtils = exports.AIAudioTranscription = exports.AITools = exports.AIMessages = exports.AIModels = exports.AI = void 0;
|
|
7
7
|
const models_1 = require("./langchain/models");
|
|
8
|
-
Object.defineProperty(exports, "
|
|
8
|
+
Object.defineProperty(exports, "AIModels", { enumerable: true, get: function () { return models_1.AIModels; } });
|
|
9
9
|
const zod_1 = __importDefault(require("zod"));
|
|
10
10
|
const langchain_1 = require("langchain");
|
|
11
11
|
const messages_1 = require("./langchain/messages");
|
|
12
|
-
Object.defineProperty(exports, "
|
|
12
|
+
Object.defineProperty(exports, "AIMessages", { enumerable: true, get: function () { return messages_1.AIMessages; } });
|
|
13
13
|
const tools_1 = require("./langchain/tools");
|
|
14
|
-
Object.defineProperty(exports, "
|
|
15
|
-
class
|
|
14
|
+
Object.defineProperty(exports, "AITools", { enumerable: true, get: function () { return tools_1.AITools; } });
|
|
15
|
+
class AI {
|
|
16
16
|
tokens;
|
|
17
17
|
constructor(tokens) {
|
|
18
18
|
this.tokens = tokens;
|
|
@@ -23,9 +23,12 @@ class Langchain {
|
|
|
23
23
|
...this.standardAgent(params),
|
|
24
24
|
});
|
|
25
25
|
const response = await agent.invoke({ messages });
|
|
26
|
+
const rawContent = response.messages.at(-1)?.content;
|
|
27
|
+
const text = typeof rawContent === "string" && rawContent.trim()
|
|
28
|
+
? rawContent
|
|
29
|
+
: "Empty response from the model";
|
|
26
30
|
return {
|
|
27
|
-
text
|
|
28
|
-
"Empty response from the model",
|
|
31
|
+
text,
|
|
29
32
|
messages: response.messages,
|
|
30
33
|
};
|
|
31
34
|
}
|
|
@@ -92,15 +95,15 @@ class Langchain {
|
|
|
92
95
|
};
|
|
93
96
|
if (aiModel.startsWith("gpt")) {
|
|
94
97
|
config.apiKey = this.tokens.openAIApiKey;
|
|
95
|
-
return models_1.
|
|
98
|
+
return models_1.AIModels.gpt(config);
|
|
96
99
|
}
|
|
97
100
|
if (aiModel.startsWith("gemini")) {
|
|
98
101
|
config.apiKey = this.tokens.googleGeminiToken;
|
|
99
|
-
return models_1.
|
|
102
|
+
return models_1.AIModels.gemini(config);
|
|
100
103
|
}
|
|
101
104
|
if (aiModel.startsWith("openrouter/")) {
|
|
102
105
|
const modelName = aiModel.replace(/^openrouter\//, "");
|
|
103
|
-
return models_1.
|
|
106
|
+
return models_1.AIModels.openrouter({
|
|
104
107
|
...config,
|
|
105
108
|
model: modelName,
|
|
106
109
|
apiKey: this.tokens.openRouterApiKey,
|
|
@@ -133,9 +136,22 @@ class Langchain {
|
|
|
133
136
|
];
|
|
134
137
|
}
|
|
135
138
|
}
|
|
136
|
-
exports.
|
|
139
|
+
exports.AI = AI;
|
|
140
|
+
exports.Langchain = AI;
|
|
137
141
|
var audio_transcription_1 = require("./langchain/audio-transcription");
|
|
138
|
-
Object.defineProperty(exports, "
|
|
142
|
+
Object.defineProperty(exports, "AIAudioTranscription", { enumerable: true, get: function () { return audio_transcription_1.AIAudioTranscription; } });
|
|
139
143
|
var audio_utils_1 = require("./utils/audio-utils");
|
|
140
144
|
Object.defineProperty(exports, "AudioUtils", { enumerable: true, get: function () { return audio_utils_1.AudioUtils; } });
|
|
145
|
+
/** @deprecated Use AIModels instead. Will be removed in 2.0.0 */
|
|
146
|
+
var models_2 = require("./langchain/models");
|
|
147
|
+
Object.defineProperty(exports, "LangchainModels", { enumerable: true, get: function () { return models_2.AIModels; } });
|
|
148
|
+
/** @deprecated Use AIMessages instead. Will be removed in 2.0.0 */
|
|
149
|
+
var messages_2 = require("./langchain/messages");
|
|
150
|
+
Object.defineProperty(exports, "LangchainMessages", { enumerable: true, get: function () { return messages_2.AIMessages; } });
|
|
151
|
+
/** @deprecated Use AITools instead. Will be removed in 2.0.0 */
|
|
152
|
+
var tools_2 = require("./langchain/tools");
|
|
153
|
+
Object.defineProperty(exports, "LangchainTools", { enumerable: true, get: function () { return tools_2.AITools; } });
|
|
154
|
+
/** @deprecated Use AIAudioTranscription instead. Will be removed in 2.0.0 */
|
|
155
|
+
var audio_transcription_2 = require("./langchain/audio-transcription");
|
|
156
|
+
Object.defineProperty(exports, "LangchainAudioTranscription", { enumerable: true, get: function () { return audio_transcription_2.AIAudioTranscription; } });
|
|
141
157
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,+
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import type { AudioBuffer, AudioMimeType } from "../@types/audio";
|
|
2
|
+
/** Modelos disponíveis na API de transcrição OpenAI (Speech-to-Text) */
|
|
3
|
+
export type WhisperModel = "whisper-1" | "gpt-4o-transcribe" | "gpt-4o-mini-transcribe" | "gpt-4o-mini-transcribe-2025-12-15" | "gpt-4o-transcribe-diarize";
|
|
2
4
|
export type WhisperTranscriptionOptions = {
|
|
5
|
+
/** Modelo de transcrição. Padrão: "whisper-1". gpt-4o-transcribe e gpt-4o-mini-transcribe têm maior qualidade. */
|
|
6
|
+
model?: WhisperModel;
|
|
3
7
|
languageIn2Digits?: string;
|
|
4
8
|
prompt?: string;
|
|
5
9
|
responseFormat?: "json" | "text" | "srt" | "verbose_json" | "vtt";
|
|
@@ -8,8 +12,7 @@ export type WhisperTranscriptionOptions = {
|
|
|
8
12
|
/** Formato do áudio: extensão ("mp3", "wav", "webm") ou MIME type ("audio/wav", "audio/webm") */
|
|
9
13
|
format?: string | AudioMimeType;
|
|
10
14
|
};
|
|
11
|
-
export declare class
|
|
12
|
-
private static extractTextFromDocs;
|
|
15
|
+
export declare class AIAudioTranscription {
|
|
13
16
|
static transcribeWithWhisper(audioBuffer: AudioBuffer, options?: WhisperTranscriptionOptions, openAIApiKey?: string): Promise<string>;
|
|
14
17
|
static transcribeFileWithWhisper(filePath: string, options?: WhisperTranscriptionOptions, openAIApiKey?: string): Promise<string>;
|
|
15
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audio-transcription.d.ts","sourceRoot":"","sources":["../../src/langchain/audio-transcription.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"audio-transcription.d.ts","sourceRoot":"","sources":["../../src/langchain/audio-transcription.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGlE,wEAAwE;AACxE,MAAM,MAAM,YAAY,GACpB,WAAW,GACX,mBAAmB,GACnB,wBAAwB,GACxB,mCAAmC,GACnC,2BAA2B,CAAC;AAEhC,MAAM,MAAM,2BAA2B,GAAG;IACxC,kHAAkH;IAClH,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,cAAc,GAAG,KAAK,CAAC;IAClE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sBAAsB,CAAC,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;IAChD,iGAAiG;IACjG,MAAM,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC;CACjC,CAAC;AAgBF,qBAAa,oBAAoB;WAClB,qBAAqB,CAChC,WAAW,EAAE,WAAW,EACxB,OAAO,GAAE,2BAAgC,EACzC,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,MAAM,CAAC;WAwCL,yBAAyB,CACpC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,2BAAgC,EACzC,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,MAAM,CAAC;CAcnB"}
|
|
@@ -32,56 +32,61 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
32
32
|
return result;
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
35
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.
|
|
39
|
+
exports.AIAudioTranscription = void 0;
|
|
37
40
|
const fs = __importStar(require("fs"));
|
|
38
41
|
const path = __importStar(require("path"));
|
|
39
|
-
const
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
if (!firstDoc) {
|
|
48
|
-
throw new Error("Documento vazio retornado pela transcrição");
|
|
49
|
-
}
|
|
50
|
-
// LangChain.js usa pageContent (camelCase), não page_content
|
|
51
|
-
return firstDoc.pageContent;
|
|
42
|
+
const openai_1 = __importDefault(require("openai"));
|
|
43
|
+
const openai_2 = require("openai");
|
|
44
|
+
const audio_1 = require("../@types/audio");
|
|
45
|
+
function getExtension(format) {
|
|
46
|
+
if (!format)
|
|
47
|
+
return "mp3";
|
|
48
|
+
if (format.startsWith("audio/")) {
|
|
49
|
+
return audio_1.MIME_TO_EXTENSION[format] ?? "mp3";
|
|
52
50
|
}
|
|
51
|
+
return format.replace(/^\./, "");
|
|
52
|
+
}
|
|
53
|
+
function toBuffer(audioBuffer) {
|
|
54
|
+
if (audioBuffer instanceof Buffer)
|
|
55
|
+
return audioBuffer;
|
|
56
|
+
if (audioBuffer instanceof ArrayBuffer)
|
|
57
|
+
return Buffer.from(audioBuffer);
|
|
58
|
+
return Buffer.from(audioBuffer);
|
|
59
|
+
}
|
|
60
|
+
class AIAudioTranscription {
|
|
53
61
|
static async transcribeWithWhisper(audioBuffer, options = {}, openAIApiKey) {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
}
|
|
76
|
-
const loader = new openai_whisper_audio_1.OpenAIWhisperAudio(tempFilePath, {
|
|
77
|
-
transcriptionCreateParams: transcriptionParams,
|
|
78
|
-
});
|
|
79
|
-
const docs = await loader.load();
|
|
80
|
-
return this.extractTextFromDocs(docs);
|
|
62
|
+
if (openAIApiKey) {
|
|
63
|
+
process.env.OPENAI_API_KEY = openAIApiKey;
|
|
64
|
+
}
|
|
65
|
+
const buffer = toBuffer(audioBuffer);
|
|
66
|
+
const extension = getExtension(options.format);
|
|
67
|
+
const fileName = `whisper-${Date.now()}.${extension}`;
|
|
68
|
+
const file = await (0, openai_2.toFile)(buffer, fileName);
|
|
69
|
+
const openai = new openai_1.default();
|
|
70
|
+
const transcriptionParams = {
|
|
71
|
+
file,
|
|
72
|
+
model: options.model ?? "whisper-1",
|
|
73
|
+
response_format: options.responseFormat ?? "text",
|
|
74
|
+
};
|
|
75
|
+
if (options.languageIn2Digits) {
|
|
76
|
+
transcriptionParams.language = options.languageIn2Digits;
|
|
77
|
+
}
|
|
78
|
+
if (options.prompt) {
|
|
79
|
+
transcriptionParams.prompt = options.prompt;
|
|
80
|
+
}
|
|
81
|
+
if (options.temperature !== undefined) {
|
|
82
|
+
transcriptionParams.temperature = options.temperature;
|
|
81
83
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
+
if (options.timestampGranularities) {
|
|
85
|
+
transcriptionParams.timestamp_granularities =
|
|
86
|
+
options.timestampGranularities;
|
|
84
87
|
}
|
|
88
|
+
const response = await openai.audio.transcriptions.create(transcriptionParams);
|
|
89
|
+
return typeof response === "string" ? response : response.text;
|
|
85
90
|
}
|
|
86
91
|
static async transcribeFileWithWhisper(filePath, options = {}, openAIApiKey) {
|
|
87
92
|
if (!fs.existsSync(filePath)) {
|
|
@@ -92,5 +97,5 @@ class LangchainAudioTranscription {
|
|
|
92
97
|
return this.transcribeWithWhisper(audioBuffer, { ...options, format }, openAIApiKey);
|
|
93
98
|
}
|
|
94
99
|
}
|
|
95
|
-
exports.
|
|
100
|
+
exports.AIAudioTranscription = AIAudioTranscription;
|
|
96
101
|
//# sourceMappingURL=audio-transcription.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audio-transcription.js","sourceRoot":"","sources":["../../src/langchain/audio-transcription.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"audio-transcription.js","sourceRoot":"","sources":["../../src/langchain/audio-transcription.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,7 @@ export type HumanMessageWithAudioOptions = {
|
|
|
18
18
|
provider?: "openai" | "gemini" | "auto";
|
|
19
19
|
openAIApiKey?: string;
|
|
20
20
|
};
|
|
21
|
-
export declare class
|
|
21
|
+
export declare class AIMessages {
|
|
22
22
|
static system(message: string): SystemMessage;
|
|
23
23
|
static human(message: string): HumanMessage;
|
|
24
24
|
static humanAudio(options: HumanMessageWithAudioOptions): Promise<HumanMessage>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/langchain/messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEnE,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGlE,MAAM,MAAM,YAAY,GAAG,aAAa,GAAG,YAAY,GAAG,SAAS,CAAC;AAEpE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,OAAO,CAAC;IACd,WAAW,EAAE,QAAQ,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,aAAa,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,KAAK,EAAE;QACL,MAAM,EAAE,WAAW,CAAC;QACpB,QAAQ,CAAC,EAAE,aAAa,CAAC;QACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,qBAAa,
|
|
1
|
+
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/langchain/messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEnE,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGlE,MAAM,MAAM,YAAY,GAAG,aAAa,GAAG,YAAY,GAAG,SAAS,CAAC;AAEpE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,OAAO,CAAC;IACd,WAAW,EAAE,QAAQ,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,aAAa,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,KAAK,EAAE;QACL,MAAM,EAAE,WAAW,CAAC;QACpB,QAAQ,CAAC,EAAE,aAAa,CAAC;QACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,qBAAa,UAAU;IACrB,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa;IAI7C,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY;WAI9B,UAAU,CACrB,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,YAAY,CAAC;IAcxB,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS;mBAIhB,2BAA2B;mBAkD3B,kBAAkB;CA0CxC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.AIMessages = void 0;
|
|
4
4
|
const langchain_1 = require("langchain");
|
|
5
5
|
const audio_utils_1 = require("../utils/audio-utils");
|
|
6
6
|
const audio_transcription_1 = require("./audio-transcription");
|
|
7
|
-
class
|
|
7
|
+
class AIMessages {
|
|
8
8
|
static system(message) {
|
|
9
9
|
return new langchain_1.SystemMessage(message);
|
|
10
10
|
}
|
|
@@ -59,7 +59,7 @@ class LangchainMessages {
|
|
|
59
59
|
const transcriptionOptions = mimeType
|
|
60
60
|
? { format: mimeType }
|
|
61
61
|
: { language: "pt" };
|
|
62
|
-
const transcribedText = await audio_transcription_1.
|
|
62
|
+
const transcribedText = await audio_transcription_1.AIAudioTranscription.transcribeWithWhisper(audioBuffer, transcriptionOptions, openAIApiKey);
|
|
63
63
|
// Combina o texto original (se fornecido) com a transcrição
|
|
64
64
|
const finalText = text
|
|
65
65
|
? `${text}\n\nÁudio transcrito: ${transcribedText}`
|
|
@@ -75,5 +75,5 @@ class LangchainMessages {
|
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
|
-
exports.
|
|
78
|
+
exports.AIMessages = AIMessages;
|
|
79
79
|
//# sourceMappingURL=messages.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/langchain/messages.ts"],"names":[],"mappings":";;;AAAA,yCAAmE;AACnE,sDAAkD;AAElD,+
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/langchain/messages.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,12 +6,9 @@ export type LLMModelConfig = {
|
|
|
6
6
|
maxTokens?: number | undefined;
|
|
7
7
|
temperature?: number | undefined;
|
|
8
8
|
};
|
|
9
|
-
export declare class
|
|
9
|
+
export declare class AIModels {
|
|
10
10
|
static gpt(params: LLMModelConfig): ChatOpenAI<import("@langchain/openai").ChatOpenAICallOptions>;
|
|
11
11
|
static gemini(params: LLMModelConfig): ChatGoogleGenerativeAI;
|
|
12
|
-
static openrouter(params: LLMModelConfig
|
|
13
|
-
httpReferer?: string;
|
|
14
|
-
title?: string;
|
|
15
|
-
}): ChatOpenAI<import("@langchain/openai").ChatOpenAICallOptions>;
|
|
12
|
+
static openrouter(params: LLMModelConfig): ChatOpenAI<import("@langchain/openai").ChatOpenAICallOptions>;
|
|
16
13
|
}
|
|
17
14
|
//# sourceMappingURL=models.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/langchain/models.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EAEvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,UAAU,EAAoB,MAAM,mBAAmB,CAAC;AAEjE,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC,CAAC;AAEF,qBAAa,
|
|
1
|
+
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/langchain/models.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EAEvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,UAAU,EAAoB,MAAM,mBAAmB,CAAC;AAEjE,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC,CAAC;AAEF,qBAAa,QAAQ;IACnB,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,cAAc;IAgBjC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc;IAmBpC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,cAAc;CAqBzC"}
|
package/dist/langchain/models.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.AIModels = void 0;
|
|
4
4
|
const google_genai_1 = require("@langchain/google-genai");
|
|
5
5
|
const openai_1 = require("@langchain/openai");
|
|
6
|
-
class
|
|
6
|
+
class AIModels {
|
|
7
7
|
static gpt(params) {
|
|
8
8
|
const { model, apiKey, maxTokens, temperature } = params;
|
|
9
9
|
if (!apiKey)
|
|
@@ -33,7 +33,7 @@ class LangchainModels {
|
|
|
33
33
|
return new google_genai_1.ChatGoogleGenerativeAI(options);
|
|
34
34
|
}
|
|
35
35
|
static openrouter(params) {
|
|
36
|
-
const { apiKey, maxTokens, model, temperature
|
|
36
|
+
const { apiKey, maxTokens, model, temperature } = params;
|
|
37
37
|
if (!apiKey)
|
|
38
38
|
throw new Error("OpenRouter API key is not passed in the model parameters");
|
|
39
39
|
const options = {
|
|
@@ -50,5 +50,5 @@ class LangchainModels {
|
|
|
50
50
|
return new openai_1.ChatOpenAI(options);
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
|
-
exports.
|
|
53
|
+
exports.AIModels = AIModels;
|
|
54
54
|
//# sourceMappingURL=models.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/langchain/models.ts"],"names":[],"mappings":";;;AAAA,0DAGiC;AACjC,8CAAiE;AASjE,MAAa,
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/langchain/models.ts"],"names":[],"mappings":";;;AAAA,0DAGiC;AACjC,8CAAiE;AASjE,MAAa,QAAQ;IACnB,MAAM,CAAC,GAAG,CAAC,MAAsB;QAC/B,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;QACzD,IAAI,CAAC,MAAM;YACT,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAE1E,MAAM,OAAO,GAAqB;YAChC,KAAK;YACL,MAAM;SACP,CAAC;QAEF,IAAI,SAAS;YAAE,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;QAC7C,IAAI,WAAW;YAAE,OAAO,CAAC,WAAW,GAAG,WAAW,CAAC;QAEnD,OAAO,IAAI,mBAAU,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,MAAsB;QAClC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;QAEzD,IAAI,CAAC,MAAM;YACT,MAAM,IAAI,KAAK,CACb,6DAA6D,CAC9D,CAAC;QAEJ,MAAM,OAAO,GAAgC;YAC3C,KAAK;YACL,MAAM;SACP,CAAC;QAEF,IAAI,SAAS;YAAE,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;QACnD,IAAI,WAAW;YAAE,OAAO,CAAC,WAAW,GAAG,WAAW,CAAC;QAEnD,OAAO,IAAI,qCAAsB,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,MAAsB;QACtC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;QAEzD,IAAI,CAAC,MAAM;YACT,MAAM,IAAI,KAAK,CACb,0DAA0D,CAC3D,CAAC;QAEJ,MAAM,OAAO,GAAqB;YAChC,KAAK;YACL,MAAM;YACN,aAAa,EAAE;gBACb,OAAO,EAAE,8BAA8B;aACxC;SACF,CAAC;QAEF,IAAI,SAAS;YAAE,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;QAC7C,IAAI,WAAW;YAAE,OAAO,CAAC,WAAW,GAAG,WAAW,CAAC;QAEnD,OAAO,IAAI,mBAAU,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;CACF;AAzDD,4BAyDC"}
|
|
@@ -6,7 +6,7 @@ export type CreateToolParams = {
|
|
|
6
6
|
description: string;
|
|
7
7
|
schema: z.ZodSchema;
|
|
8
8
|
};
|
|
9
|
-
export declare class
|
|
9
|
+
export declare class AITools {
|
|
10
10
|
createTool(params: CreateToolParams): import("langchain").DynamicStructuredTool<z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>, unknown, unknown, unknown, string>;
|
|
11
11
|
}
|
|
12
12
|
//# sourceMappingURL=tools.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/langchain/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,MAAM,MAAM,gBAAgB,GAAG;IAC7B,YAAY,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC;CACrB,CAAC;AAEF,qBAAa,
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/langchain/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,MAAM,MAAM,gBAAgB,GAAG;IAC7B,YAAY,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC;CACrB,CAAC;AAEF,qBAAa,OAAO;IAClB,UAAU,CAAC,MAAM,EAAE,gBAAgB;CAUpC"}
|
package/dist/langchain/tools.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.AITools = void 0;
|
|
4
4
|
const langchain_1 = require("langchain");
|
|
5
|
-
class
|
|
5
|
+
class AITools {
|
|
6
6
|
createTool(params) {
|
|
7
7
|
const { toolFunction } = params;
|
|
8
8
|
const { name, description, schema } = params;
|
|
@@ -13,5 +13,5 @@ class LangchainTools {
|
|
|
13
13
|
});
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
|
-
exports.
|
|
16
|
+
exports.AITools = AITools;
|
|
17
17
|
//# sourceMappingURL=tools.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/langchain/tools.ts"],"names":[],"mappings":";;;AAAA,yCAAiC;AAUjC,MAAa,
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/langchain/tools.ts"],"names":[],"mappings":";;;AAAA,yCAAiC;AAUjC,MAAa,OAAO;IAClB,UAAU,CAAC,MAAwB;QACjC,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;QAChC,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QAE7C,OAAO,IAAA,gBAAI,EAAC,YAAY,EAAE;YACxB,IAAI;YACJ,WAAW;YACX,MAAM;SACP,CAAC,CAAC;IACL,CAAC;CACF;AAXD,0BAWC"}
|