@luanpoppe/ai 1.0.0 → 1.0.1
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/@types/model-names.d.ts.map +1 -0
- package/dist/{src/@types → @types}/model-names.js.map +1 -1
- package/dist/index.d.ts +11 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -25
- package/dist/index.js.map +1 -1
- package/dist/langchain/messages.d.ts.map +1 -0
- package/dist/langchain/messages.js.map +1 -0
- package/dist/langchain/models.d.ts.map +1 -0
- package/dist/{src/langchain → langchain}/models.js +4 -5
- package/dist/langchain/models.js.map +1 -0
- package/dist/langchain/tools.d.ts.map +1 -0
- package/dist/langchain/tools.js.map +1 -0
- package/package.json +1 -2
- package/{index.ts → src/index.ts} +13 -26
- package/src/langchain/models.ts +8 -5
- package/tsconfig.json +6 -3
- package/.env.example +0 -2
- package/dist/src/@types/model-names.d.ts.map +0 -1
- package/dist/src/core/env.d.ts +0 -6
- package/dist/src/core/env.d.ts.map +0 -1
- package/dist/src/core/env.js +0 -17
- package/dist/src/core/env.js.map +0 -1
- package/dist/src/langchain/messages.d.ts.map +0 -1
- package/dist/src/langchain/messages.js.map +0 -1
- package/dist/src/langchain/models.d.ts.map +0 -1
- package/dist/src/langchain/models.js.map +0 -1
- package/dist/src/langchain/tools.d.ts.map +0 -1
- package/dist/src/langchain/tools.js.map +0 -1
- package/src/core/env.ts +0 -13
- /package/dist/{src/@types → @types}/model-names.d.ts +0 -0
- /package/dist/{src/@types → @types}/model-names.js +0 -0
- /package/dist/{src/langchain → langchain}/messages.d.ts +0 -0
- /package/dist/{src/langchain → langchain}/messages.js +0 -0
- /package/dist/{src/langchain → langchain}/models.d.ts +0 -0
- /package/dist/{src/langchain → langchain}/tools.d.ts +0 -0
- /package/dist/{src/langchain → langchain}/tools.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-names.d.ts","sourceRoot":"","sources":["../../src/@types/model-names.ts"],"names":[],"mappings":"AAAA,KAAK,aAAa,GACd,OAAO,GACP,QAAQ,GACR,SAAS,GACT,OAAO,GACP,SAAS,GACT,YAAY,GACZ,YAAY,CAAC;AAEjB,KAAK,YAAY,GACb,kBAAkB,GAClB,gBAAgB,GAChB,gBAAgB,GAChB,cAAc,CAAC;AAEnB,MAAM,MAAM,YAAY,GAAG,aAAa,GAAG,YAAY,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-names.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"model-names.js","sourceRoot":"","sources":["../../src/@types/model-names.ts"],"names":[],"mappings":""}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { LangchainModels } from "./langchain/models";
|
|
2
|
+
import { AIModelNames } from "./@types/model-names";
|
|
2
3
|
import z from "zod";
|
|
3
|
-
import { MessageInput } from "./
|
|
4
|
+
import { MessageInput } from "./langchain/messages";
|
|
4
5
|
import { AgentMiddleware, BaseMessage } from "langchain";
|
|
5
6
|
import { ClientTool, ServerTool } from "@langchain/core/tools";
|
|
7
|
+
import { LangchainMessages } from "./langchain/messages";
|
|
8
|
+
type LangchainConstructor = {
|
|
9
|
+
googleGeminiToken?: string;
|
|
10
|
+
openAIApiKey?: string;
|
|
11
|
+
};
|
|
6
12
|
export type CallParams = {
|
|
7
13
|
aiModel: AIModelNames;
|
|
8
14
|
messages: MessageInput[];
|
|
@@ -22,11 +28,13 @@ export type CallStructuredOutputReturn<T> = Promise<{
|
|
|
22
28
|
response: z.infer<T>;
|
|
23
29
|
}>;
|
|
24
30
|
export declare class Langchain {
|
|
25
|
-
|
|
31
|
+
private tokens;
|
|
32
|
+
constructor(tokens: LangchainConstructor);
|
|
26
33
|
call(params: CallParams): CallReturn;
|
|
27
34
|
callStructuredOutput<T extends z.ZodSchema>(params: CallStructuredOutputParams<T>): CallStructuredOutputReturn<typeof params.outputSchema>;
|
|
28
35
|
private getModel;
|
|
29
36
|
private standardAgent;
|
|
30
37
|
private standardMiddlewares;
|
|
31
38
|
}
|
|
39
|
+
export { LangchainModels, LangchainMessages };
|
|
32
40
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,CAAC,MAAM,KAAK,CAAC;AACpB,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EACL,eAAe,EACf,WAAW,EAIZ,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,KAAK,oBAAoB,GAAG;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,EAAE,YAAY,CAAC;IACtB,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,eAAe,EAAE,CAAC;IAC/B,KAAK,CAAC,EAAE,CAAC,UAAU,GAAG,UAAU,CAAC,EAAE,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB,CAAC,CAAC;AAEH,MAAM,MAAM,0BAA0B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,IAAI,UAAU,GAAG;IAC3E,YAAY,EAAE,CAAC,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,0BAA0B,CAAC,CAAC,IAAI,OAAO,CAAC;IAClD,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;CACtB,CAAC,CAAC;AAEH,qBAAa,SAAS;IACR,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,oBAAoB;IAE1C,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU;IAepC,oBAAoB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,EAC9C,MAAM,EAAE,0BAA0B,CAAC,CAAC,CAAC,GACpC,0BAA0B,CAAC,OAAO,MAAM,CAAC,YAAY,CAAC;IAiBzD,OAAO,CAAC,QAAQ;IAkBhB,OAAO,CAAC,aAAa;IAgBrB,OAAO,CAAC,mBAAmB;CAU5B;AAED,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.Langchain = void 0;
|
|
7
|
-
const models_1 = require("./
|
|
8
|
-
|
|
9
|
-
const messages_1 = require("./src/langchain/messages");
|
|
3
|
+
exports.LangchainMessages = exports.LangchainModels = exports.Langchain = void 0;
|
|
4
|
+
const models_1 = require("./langchain/models");
|
|
5
|
+
Object.defineProperty(exports, "LangchainModels", { enumerable: true, get: function () { return models_1.LangchainModels; } });
|
|
10
6
|
const langchain_1 = require("langchain");
|
|
7
|
+
const messages_1 = require("./langchain/messages");
|
|
8
|
+
Object.defineProperty(exports, "LangchainMessages", { enumerable: true, get: function () { return messages_1.LangchainMessages; } });
|
|
11
9
|
class Langchain {
|
|
12
|
-
|
|
10
|
+
tokens;
|
|
11
|
+
constructor(tokens) {
|
|
12
|
+
this.tokens = tokens;
|
|
13
|
+
}
|
|
13
14
|
async call(params) {
|
|
14
15
|
const { messages } = params;
|
|
15
16
|
const agent = (0, langchain_1.createAgent)({
|
|
@@ -37,11 +38,13 @@ class Langchain {
|
|
|
37
38
|
if (aiModel.startsWith("gpt")) {
|
|
38
39
|
return models_1.LangchainModels.gpt({
|
|
39
40
|
modelName: aiModel,
|
|
41
|
+
apiKey: this.tokens.openAIApiKey,
|
|
40
42
|
});
|
|
41
43
|
}
|
|
42
44
|
if (aiModel.startsWith("gemini")) {
|
|
43
45
|
return models_1.LangchainModels.gemini({
|
|
44
46
|
model: aiModel,
|
|
47
|
+
apiKey: this.tokens.googleGeminiToken ?? "",
|
|
45
48
|
});
|
|
46
49
|
}
|
|
47
50
|
throw new Error("Model not supported");
|
|
@@ -72,21 +75,4 @@ class Langchain {
|
|
|
72
75
|
}
|
|
73
76
|
}
|
|
74
77
|
exports.Langchain = Langchain;
|
|
75
|
-
const example = async () => {
|
|
76
|
-
const langchain = new Langchain();
|
|
77
|
-
const outputSchema = zod_1.default.object({
|
|
78
|
-
answer: zod_1.default.string(),
|
|
79
|
-
});
|
|
80
|
-
const messages = [
|
|
81
|
-
messages_1.LangchainMessages.system("You are a helpful assistant."),
|
|
82
|
-
messages_1.LangchainMessages.human("What is the capital of France?"),
|
|
83
|
-
];
|
|
84
|
-
const { response } = await langchain.callStructuredOutput({
|
|
85
|
-
aiModel: "gemini-2.5-flash",
|
|
86
|
-
outputSchema,
|
|
87
|
-
messages,
|
|
88
|
-
});
|
|
89
|
-
console.log({ response });
|
|
90
|
-
};
|
|
91
|
-
example();
|
|
92
78
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,+CAAqD;AA4H5C,gGA5HA,wBAAe,OA4HA;AAxHxB,yCAMmB;AAEnB,mDAAyD;AAgH/B,kGAhHjB,4BAAiB,OAgHiB;AAnF3C,MAAa,SAAS;IACA;IAApB,YAAoB,MAA4B;QAA5B,WAAM,GAAN,MAAM,CAAsB;IAAG,CAAC;IAEpD,KAAK,CAAC,IAAI,CAAC,MAAkB;QAC3B,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;QAE5B,MAAM,KAAK,GAAG,IAAA,uBAAW,EAAC;YACxB,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;SAC9B,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;QAElD,OAAO;YACL,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,+BAA+B;YACnE,QAAQ,EAAE,QAAQ,CAAC,QAAQ;SAC5B,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,oBAAoB,CACxB,MAAqC;QAErC,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;QAE1C,MAAM,KAAK,GAAG,IAAA,uBAAW,EAAC;YACxB,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;YAC7B,cAAc,EAAE,YAAmB;SACpC,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC;YAClC,QAAQ;SACT,CAAC,CAAC;QAEH,MAAM,cAAc,GAAG,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;QAExE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;IACtC,CAAC;IAEO,QAAQ,CAAC,OAAqB;QACpC,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,wBAAe,CAAC,GAAG,CAAC;gBACzB,SAAS,EAAE,OAAO;gBAClB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;aACjC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjC,OAAO,wBAAe,CAAC,MAAM,CAAC;gBAC5B,KAAK,EAAE,OAAO;gBACd,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,iBAAiB,IAAI,EAAE;aAC5C,CAAC,CAAC;QACL,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACzC,CAAC;IAEO,aAAa,CAAC,MAAkB;QACtC,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,GAAG,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;QAE5E,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACrC,OAAO;YACL,KAAK;YACL,YAAY,EAAE,YAAY,IAAI,EAAE;YAChC,UAAU,EAAE;gBACV,GAAG,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC;gBACvC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC;aACtB;YACD,KAAK,EAAE,KAAK,IAAI,EAAE;YAClB,cAAc,EAAE,SAAgB;SACjC,CAAC;IACJ,CAAC;IAEO,mBAAmB,CAAC,UAAkB;QAC5C,OAAO;YACL,IAAA,gCAAoB,EAAC;gBACnB,UAAU;gBACV,aAAa,EAAE,GAAG;gBAClB,cAAc,EAAE,IAAI;aACrB,CAAC;YACF,IAAA,mCAAuB,EAAC,kBAAkB,EAAE,aAAa,CAAC;SAC3D,CAAC;IACJ,CAAC;CACF;AAjFD,8BAiFC"}
|
|
@@ -0,0 +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,MAAM,MAAM,YAAY,GAAG,aAAa,GAAG,YAAY,GAAG,SAAS,CAAC;AAEpE,qBAAa,iBAAiB;IAC5B,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa;IAG7C,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY;IAG3C,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS;CAGtC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/langchain/messages.ts"],"names":[],"mappings":";;;AAAA,yCAAmE;AAInE,MAAa,iBAAiB;IAC5B,MAAM,CAAC,MAAM,CAAC,OAAe;QAC3B,OAAO,IAAI,yBAAa,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,OAAe;QAC1B,OAAO,IAAI,wBAAY,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IACD,MAAM,CAAC,EAAE,CAAC,OAAe;QACvB,OAAO,IAAI,qBAAS,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;CACF;AAVD,8CAUC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/langchain/models.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC5B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAEjE,qBAAa,eAAe;IAC1B,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,gBAAgB;IAUnC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,2BAA2B;CAWlD"}
|
|
@@ -3,21 +3,20 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.LangchainModels = void 0;
|
|
4
4
|
const google_genai_1 = require("@langchain/google-genai");
|
|
5
5
|
const openai_1 = require("@langchain/openai");
|
|
6
|
-
const env_1 = require("../core/env");
|
|
7
6
|
class LangchainModels {
|
|
8
7
|
static gpt(params) {
|
|
9
|
-
|
|
8
|
+
if (!params.apiKey)
|
|
9
|
+
throw new Error("OpenAI API key is not passed in the model parameters");
|
|
10
10
|
return new openai_1.ChatOpenAI({
|
|
11
|
-
temperature: 0,
|
|
12
11
|
maxTokens: 2048,
|
|
13
|
-
apiKey: env_1.env.OPENAI_API_KEY,
|
|
14
12
|
...params,
|
|
15
13
|
});
|
|
16
14
|
}
|
|
17
15
|
static gemini(params) {
|
|
16
|
+
if (!params.apiKey)
|
|
17
|
+
throw new Error("Google Gemini API key is not passed in the model parameters");
|
|
18
18
|
return new google_genai_1.ChatGoogleGenerativeAI({
|
|
19
19
|
maxOutputTokens: 2048,
|
|
20
|
-
apiKey: env_1.env.GOOGLE_GENAI_API_KEY,
|
|
21
20
|
...params,
|
|
22
21
|
});
|
|
23
22
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/langchain/models.ts"],"names":[],"mappings":";;;AAAA,0DAGiC;AACjC,8CAAiE;AAEjE,MAAa,eAAe;IAC1B,MAAM,CAAC,GAAG,CAAC,MAAwB;QACjC,IAAI,CAAC,MAAM,CAAC,MAAM;YAChB,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAE1E,OAAO,IAAI,mBAAU,CAAC;YACpB,SAAS,EAAE,IAAI;YACf,GAAG,MAAM;SACV,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,MAAmC;QAC/C,IAAI,CAAC,MAAM,CAAC,MAAM;YAChB,MAAM,IAAI,KAAK,CACb,6DAA6D,CAC9D,CAAC;QAEJ,OAAO,IAAI,qCAAsB,CAAC;YAChC,eAAe,EAAE,IAAI;YACrB,GAAG,MAAM;SACV,CAAC,CAAC;IACL,CAAC;CACF;AAtBD,0CAsBC"}
|
|
@@ -0,0 +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,cAAc;IACzB,UAAU,CAAC,MAAM,EAAE,gBAAgB;CAUpC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/langchain/tools.ts"],"names":[],"mappings":";;;AAAA,yCAAiC;AAUjC,MAAa,cAAc;IACzB,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,wCAWC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@luanpoppe/ai",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"keywords": [],
|
|
@@ -10,7 +10,6 @@
|
|
|
10
10
|
"@langchain/core": "^1.1.8",
|
|
11
11
|
"@langchain/google-genai": "^2.1.3",
|
|
12
12
|
"@langchain/openai": "^1.2.0",
|
|
13
|
-
"dotenv": "^17.2.3",
|
|
14
13
|
"langchain": "^1.2.3",
|
|
15
14
|
"typescript": "^5.9.3",
|
|
16
15
|
"zod": "^4.2.1"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { LangchainModels } from "./
|
|
2
|
-
import { AIModelNames } from "
|
|
1
|
+
import { LangchainModels } from "./langchain/models";
|
|
2
|
+
import { AIModelNames } from "./@types/model-names";
|
|
3
3
|
import z from "zod";
|
|
4
|
-
import {
|
|
4
|
+
import { MessageInput } from "./langchain/messages";
|
|
5
5
|
import {
|
|
6
6
|
AgentMiddleware,
|
|
7
7
|
BaseMessage,
|
|
@@ -10,6 +10,12 @@ import {
|
|
|
10
10
|
modelRetryMiddleware,
|
|
11
11
|
} from "langchain";
|
|
12
12
|
import { ClientTool, ServerTool } from "@langchain/core/tools";
|
|
13
|
+
import { LangchainMessages } from "./langchain/messages";
|
|
14
|
+
|
|
15
|
+
type LangchainConstructor = {
|
|
16
|
+
googleGeminiToken?: string;
|
|
17
|
+
openAIApiKey?: string;
|
|
18
|
+
};
|
|
13
19
|
|
|
14
20
|
export type CallParams = {
|
|
15
21
|
aiModel: AIModelNames;
|
|
@@ -34,7 +40,7 @@ export type CallStructuredOutputReturn<T> = Promise<{
|
|
|
34
40
|
}>;
|
|
35
41
|
|
|
36
42
|
export class Langchain {
|
|
37
|
-
constructor() {}
|
|
43
|
+
constructor(private tokens: LangchainConstructor) {}
|
|
38
44
|
|
|
39
45
|
async call(params: CallParams): CallReturn {
|
|
40
46
|
const { messages } = params;
|
|
@@ -74,12 +80,14 @@ export class Langchain {
|
|
|
74
80
|
if (aiModel.startsWith("gpt")) {
|
|
75
81
|
return LangchainModels.gpt({
|
|
76
82
|
modelName: aiModel,
|
|
83
|
+
apiKey: this.tokens.openAIApiKey,
|
|
77
84
|
});
|
|
78
85
|
}
|
|
79
86
|
|
|
80
87
|
if (aiModel.startsWith("gemini")) {
|
|
81
88
|
return LangchainModels.gemini({
|
|
82
89
|
model: aiModel,
|
|
90
|
+
apiKey: this.tokens.googleGeminiToken ?? "",
|
|
83
91
|
});
|
|
84
92
|
}
|
|
85
93
|
|
|
@@ -114,25 +122,4 @@ export class Langchain {
|
|
|
114
122
|
}
|
|
115
123
|
}
|
|
116
124
|
|
|
117
|
-
|
|
118
|
-
const langchain = new Langchain();
|
|
119
|
-
|
|
120
|
-
const outputSchema = z.object({
|
|
121
|
-
answer: z.string(),
|
|
122
|
-
});
|
|
123
|
-
|
|
124
|
-
const messages = [
|
|
125
|
-
LangchainMessages.system("You are a helpful assistant."),
|
|
126
|
-
LangchainMessages.human("What is the capital of France?"),
|
|
127
|
-
];
|
|
128
|
-
|
|
129
|
-
const { response } = await langchain.callStructuredOutput({
|
|
130
|
-
aiModel: "gemini-2.5-flash",
|
|
131
|
-
outputSchema,
|
|
132
|
-
messages,
|
|
133
|
-
});
|
|
134
|
-
|
|
135
|
-
console.log({ response });
|
|
136
|
-
};
|
|
137
|
-
|
|
138
|
-
example();
|
|
125
|
+
export { LangchainModels, LangchainMessages };
|
package/src/langchain/models.ts
CHANGED
|
@@ -3,23 +3,26 @@ import {
|
|
|
3
3
|
GoogleGenerativeAIChatInput,
|
|
4
4
|
} from "@langchain/google-genai";
|
|
5
5
|
import { ChatOpenAI, ChatOpenAIFields } from "@langchain/openai";
|
|
6
|
-
import { env } from "../core/env";
|
|
7
6
|
|
|
8
7
|
export class LangchainModels {
|
|
9
8
|
static gpt(params: ChatOpenAIFields) {
|
|
10
|
-
|
|
9
|
+
if (!params.apiKey)
|
|
10
|
+
throw new Error("OpenAI API key is not passed in the model parameters");
|
|
11
|
+
|
|
11
12
|
return new ChatOpenAI({
|
|
12
|
-
temperature: 0,
|
|
13
13
|
maxTokens: 2048,
|
|
14
|
-
apiKey: env.OPENAI_API_KEY,
|
|
15
14
|
...params,
|
|
16
15
|
});
|
|
17
16
|
}
|
|
18
17
|
|
|
19
18
|
static gemini(params: GoogleGenerativeAIChatInput) {
|
|
19
|
+
if (!params.apiKey)
|
|
20
|
+
throw new Error(
|
|
21
|
+
"Google Gemini API key is not passed in the model parameters"
|
|
22
|
+
);
|
|
23
|
+
|
|
20
24
|
return new ChatGoogleGenerativeAI({
|
|
21
25
|
maxOutputTokens: 2048,
|
|
22
|
-
apiKey: env.GOOGLE_GENAI_API_KEY,
|
|
23
26
|
...params,
|
|
24
27
|
});
|
|
25
28
|
}
|
package/tsconfig.json
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
// Visit https://aka.ms/tsconfig to read more about this file
|
|
3
3
|
"compilerOptions": {
|
|
4
4
|
// File Layout
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
"rootDir": "./src",
|
|
6
|
+
"outDir": "./dist",
|
|
7
7
|
|
|
8
8
|
// Environment Settings
|
|
9
9
|
// See also https://aka.ms/tsconfig/module
|
|
@@ -39,5 +39,8 @@
|
|
|
39
39
|
"noUncheckedSideEffectImports": true,
|
|
40
40
|
"moduleDetection": "force",
|
|
41
41
|
"skipLibCheck": true
|
|
42
|
-
}
|
|
42
|
+
},
|
|
43
|
+
|
|
44
|
+
"include": ["src"],
|
|
45
|
+
"exclude": ["node_modules", "dist"]
|
|
43
46
|
}
|
package/.env.example
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"model-names.d.ts","sourceRoot":"","sources":["../../../src/@types/model-names.ts"],"names":[],"mappings":"AAAA,KAAK,aAAa,GACd,OAAO,GACP,QAAQ,GACR,SAAS,GACT,OAAO,GACP,SAAS,GACT,YAAY,GACZ,YAAY,CAAC;AAEjB,KAAK,YAAY,GACb,kBAAkB,GAClB,gBAAgB,GAChB,gBAAgB,GAChB,cAAc,CAAC;AAEnB,MAAM,MAAM,YAAY,GAAG,aAAa,GAAG,YAAY,CAAC"}
|
package/dist/src/core/env.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../../src/core/env.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;AAYvB,eAAO,MAAM,GAAG;;;CAAO,CAAC"}
|
package/dist/src/core/env.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.env = void 0;
|
|
7
|
-
require("dotenv/config");
|
|
8
|
-
const zod_1 = __importDefault(require("zod"));
|
|
9
|
-
const envSchema = zod_1.default.object({
|
|
10
|
-
OPENAI_API_KEY: zod_1.default.string().optional().default(""),
|
|
11
|
-
GOOGLE_GENAI_API_KEY: zod_1.default.string().optional().default(""),
|
|
12
|
-
});
|
|
13
|
-
const { error, data } = envSchema.safeParse(process.env);
|
|
14
|
-
if (error)
|
|
15
|
-
throw new Error(`Invalid environment variables:\n${error.message}`);
|
|
16
|
-
exports.env = data;
|
|
17
|
-
//# sourceMappingURL=env.js.map
|
package/dist/src/core/env.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../../src/core/env.ts"],"names":[],"mappings":";;;;;;AAAA,yBAAuB;AACvB,8CAAoB;AAEpB,MAAM,SAAS,GAAG,aAAC,CAAC,MAAM,CAAC;IACzB,cAAc,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACjD,oBAAoB,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;CACxD,CAAC,CAAC;AAEH,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAEzD,IAAI,KAAK;IAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;AAElE,QAAA,GAAG,GAAG,IAAI,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
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,MAAM,MAAM,YAAY,GAAG,aAAa,GAAG,YAAY,GAAG,SAAS,CAAC;AAEpE,qBAAa,iBAAiB;IAC5B,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa;IAG7C,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY;IAG3C,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS;CAGtC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../src/langchain/messages.ts"],"names":[],"mappings":";;;AAAA,yCAAmE;AAInE,MAAa,iBAAiB;IAC5B,MAAM,CAAC,MAAM,CAAC,OAAe;QAC3B,OAAO,IAAI,yBAAa,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,OAAe;QAC1B,OAAO,IAAI,wBAAY,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IACD,MAAM,CAAC,EAAE,CAAC,OAAe;QACvB,OAAO,IAAI,qBAAS,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;CACF;AAVD,8CAUC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../src/langchain/models.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC5B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAGjE,qBAAa,eAAe;IAC1B,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,gBAAgB;IAUnC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,2BAA2B;CAOlD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../../src/langchain/models.ts"],"names":[],"mappings":";;;AAAA,0DAGiC;AACjC,8CAAiE;AACjE,qCAAkC;AAElC,MAAa,eAAe;IAC1B,MAAM,CAAC,GAAG,CAAC,MAAwB;QACjC,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,EAAH,SAAG,EAAE,CAAC,CAAC;QACrB,OAAO,IAAI,mBAAU,CAAC;YACpB,WAAW,EAAE,CAAC;YACd,SAAS,EAAE,IAAI;YACf,MAAM,EAAE,SAAG,CAAC,cAAc;YAC1B,GAAG,MAAM;SACV,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,MAAmC;QAC/C,OAAO,IAAI,qCAAsB,CAAC;YAChC,eAAe,EAAE,IAAI;YACrB,MAAM,EAAE,SAAG,CAAC,oBAAoB;YAChC,GAAG,MAAM;SACV,CAAC,CAAC;IACL,CAAC;CACF;AAlBD,0CAkBC"}
|
|
@@ -1 +0,0 @@
|
|
|
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,cAAc;IACzB,UAAU,CAAC,MAAM,EAAE,gBAAgB;CAUpC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/langchain/tools.ts"],"names":[],"mappings":";;;AAAA,yCAAiC;AAUjC,MAAa,cAAc;IACzB,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,wCAWC"}
|
package/src/core/env.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import "dotenv/config";
|
|
2
|
-
import z from "zod";
|
|
3
|
-
|
|
4
|
-
const envSchema = z.object({
|
|
5
|
-
OPENAI_API_KEY: z.string().optional().default(""),
|
|
6
|
-
GOOGLE_GENAI_API_KEY: z.string().optional().default(""),
|
|
7
|
-
});
|
|
8
|
-
|
|
9
|
-
const { error, data } = envSchema.safeParse(process.env);
|
|
10
|
-
|
|
11
|
-
if (error) throw new Error(`Invalid environment variables:\n${error.message}`);
|
|
12
|
-
|
|
13
|
-
export const env = data;
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|