@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.
Files changed (37) hide show
  1. package/dist/@types/model-names.d.ts.map +1 -0
  2. package/dist/{src/@types → @types}/model-names.js.map +1 -1
  3. package/dist/index.d.ts +11 -3
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +11 -25
  6. package/dist/index.js.map +1 -1
  7. package/dist/langchain/messages.d.ts.map +1 -0
  8. package/dist/langchain/messages.js.map +1 -0
  9. package/dist/langchain/models.d.ts.map +1 -0
  10. package/dist/{src/langchain → langchain}/models.js +4 -5
  11. package/dist/langchain/models.js.map +1 -0
  12. package/dist/langchain/tools.d.ts.map +1 -0
  13. package/dist/langchain/tools.js.map +1 -0
  14. package/package.json +1 -2
  15. package/{index.ts → src/index.ts} +13 -26
  16. package/src/langchain/models.ts +8 -5
  17. package/tsconfig.json +6 -3
  18. package/.env.example +0 -2
  19. package/dist/src/@types/model-names.d.ts.map +0 -1
  20. package/dist/src/core/env.d.ts +0 -6
  21. package/dist/src/core/env.d.ts.map +0 -1
  22. package/dist/src/core/env.js +0 -17
  23. package/dist/src/core/env.js.map +0 -1
  24. package/dist/src/langchain/messages.d.ts.map +0 -1
  25. package/dist/src/langchain/messages.js.map +0 -1
  26. package/dist/src/langchain/models.d.ts.map +0 -1
  27. package/dist/src/langchain/models.js.map +0 -1
  28. package/dist/src/langchain/tools.d.ts.map +0 -1
  29. package/dist/src/langchain/tools.js.map +0 -1
  30. package/src/core/env.ts +0 -13
  31. /package/dist/{src/@types → @types}/model-names.d.ts +0 -0
  32. /package/dist/{src/@types → @types}/model-names.js +0 -0
  33. /package/dist/{src/langchain → langchain}/messages.d.ts +0 -0
  34. /package/dist/{src/langchain → langchain}/messages.js +0 -0
  35. /package/dist/{src/langchain → langchain}/models.d.ts +0 -0
  36. /package/dist/{src/langchain → langchain}/tools.d.ts +0 -0
  37. /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":["../../../src/@types/model-names.ts"],"names":[],"mappings":""}
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 { AIModelNames } from "./src/@types/model-names";
1
+ import { LangchainModels } from "./langchain/models";
2
+ import { AIModelNames } from "./@types/model-names";
2
3
  import z from "zod";
3
- import { MessageInput } from "./src/langchain/messages";
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
- constructor();
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
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,CAAC,MAAM,KAAK,CAAC;AACpB,OAAO,EAAqB,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,EACL,eAAe,EACf,WAAW,EAIZ,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAE/D,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;;IAGd,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;IAgBhB,OAAO,CAAC,aAAa;IAgBrB,OAAO,CAAC,mBAAmB;CAU5B"}
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("./src/langchain/models");
8
- const zod_1 = __importDefault(require("zod"));
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
- constructor() { }
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":"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"}
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
- console.log({ env: env_1.env });
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.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 "./src/langchain/models";
2
- import { AIModelNames } from "./src/@types/model-names";
1
+ import { LangchainModels } from "./langchain/models";
2
+ import { AIModelNames } from "./@types/model-names";
3
3
  import z from "zod";
4
- import { LangchainMessages, MessageInput } from "./src/langchain/messages";
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
- const example = async () => {
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 };
@@ -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
- console.log({ env });
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
- // "rootDir": "./src",
6
- // "outDir": "./dist",
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,2 +0,0 @@
1
- OPENAI_API_KEY="..."
2
- GOOGLE_GENAI_API_KEY="..."
@@ -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"}
@@ -1,6 +0,0 @@
1
- import "dotenv/config";
2
- export declare const env: {
3
- OPENAI_API_KEY: string;
4
- GOOGLE_GENAI_API_KEY: string;
5
- };
6
- //# sourceMappingURL=env.d.ts.map
@@ -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"}
@@ -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
@@ -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