langchain 0.0.22 → 0.0.23

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 (71) hide show
  1. package/chat_models.d.ts +1 -0
  2. package/chat_models.js +1 -0
  3. package/dist/cache.d.ts +1 -1
  4. package/dist/chains/llm_chain.d.ts +5 -4
  5. package/dist/chains/llm_chain.js +4 -5
  6. package/dist/chains/llm_chain.js.map +1 -1
  7. package/dist/chains/tests/combine_docs_chain.test.js.map +1 -1
  8. package/dist/chains/tests/llm_chain.int.test.js +14 -1
  9. package/dist/chains/tests/llm_chain.int.test.js.map +1 -1
  10. package/dist/chat_models/base.d.ts +32 -0
  11. package/dist/chat_models/base.js +110 -0
  12. package/dist/chat_models/base.js.map +1 -0
  13. package/dist/chat_models/index.d.ts +1 -0
  14. package/dist/chat_models/index.js +2 -0
  15. package/dist/chat_models/index.js.map +1 -0
  16. package/dist/chat_models/openai.d.ts +150 -0
  17. package/dist/chat_models/openai.js +295 -0
  18. package/dist/chat_models/openai.js.map +1 -0
  19. package/dist/chat_models/tests/chatopenai.int.test.js +122 -0
  20. package/dist/chat_models/tests/chatopenai.int.test.js.map +1 -0
  21. package/dist/llms/base.d.ts +6 -2
  22. package/dist/llms/base.js +28 -5
  23. package/dist/llms/base.js.map +1 -1
  24. package/dist/llms/cohere.d.ts +2 -1
  25. package/dist/llms/cohere.js.map +1 -1
  26. package/dist/llms/hf.d.ts +2 -1
  27. package/dist/llms/hf.js.map +1 -1
  28. package/dist/llms/index.d.ts +0 -35
  29. package/dist/llms/openai-chat.d.ts +3 -3
  30. package/dist/llms/openai.d.ts +3 -3
  31. package/dist/llms/openai.js.map +1 -1
  32. package/dist/llms/tests/openai.int.test.js +15 -0
  33. package/dist/llms/tests/openai.int.test.js.map +1 -1
  34. package/dist/prompts/base.d.ts +20 -3
  35. package/dist/prompts/base.js +24 -0
  36. package/dist/prompts/base.js.map +1 -1
  37. package/dist/prompts/chat.d.ts +74 -0
  38. package/dist/prompts/chat.js +179 -0
  39. package/dist/prompts/chat.js.map +1 -0
  40. package/dist/prompts/few_shot.d.ts +2 -2
  41. package/dist/prompts/few_shot.js +3 -3
  42. package/dist/prompts/few_shot.js.map +1 -1
  43. package/dist/prompts/index.d.ts +2 -1
  44. package/dist/prompts/index.js +2 -1
  45. package/dist/prompts/index.js.map +1 -1
  46. package/dist/prompts/prompt.d.ts +3 -3
  47. package/dist/prompts/prompt.js +4 -4
  48. package/dist/prompts/prompt.js.map +1 -1
  49. package/dist/prompts/template.d.ts +3 -0
  50. package/dist/prompts/template.js +5 -0
  51. package/dist/prompts/template.js.map +1 -1
  52. package/dist/prompts/tests/chat.test.d.ts +1 -0
  53. package/dist/prompts/tests/chat.test.js +101 -0
  54. package/dist/prompts/tests/chat.test.js.map +1 -0
  55. package/dist/prompts/tests/few_shot.test.js +19 -0
  56. package/dist/prompts/tests/few_shot.test.js.map +1 -1
  57. package/dist/schema/index.d.ts +79 -0
  58. package/dist/schema/index.js +53 -0
  59. package/dist/schema/index.js.map +1 -0
  60. package/dist/vectorstores/chroma.d.ts +3 -0
  61. package/dist/vectorstores/chroma.js +10 -14
  62. package/dist/vectorstores/chroma.js.map +1 -1
  63. package/dist/vectorstores/tests/chroma.test.d.ts +1 -0
  64. package/dist/vectorstores/tests/chroma.test.js +9 -0
  65. package/dist/vectorstores/tests/chroma.test.js.map +1 -0
  66. package/package.json +17 -5
  67. package/schema.d.ts +1 -0
  68. package/schema.js +1 -0
  69. package/dist/embeddings/cohere.js +0 -2
  70. package/dist/embeddings/cohere.js.map +0 -1
  71. /package/dist/{embeddings/cohere.d.ts → chat_models/tests/chatopenai.int.test.d.ts} +0 -0
@@ -0,0 +1 @@
1
+ export * from './dist/chat_models/index.js'
package/chat_models.js ADDED
@@ -0,0 +1 @@
1
+ export * from './dist/chat_models/index.js'
package/dist/cache.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Generation } from "./llms/index.js";
1
+ import { Generation } from "./schema/index.js";
2
2
  export declare const getKey: (...strings: string[]) => string;
3
3
  export declare abstract class BaseCache<T = Generation[]> {
4
4
  abstract lookup(key: string): T | undefined;
@@ -1,12 +1,13 @@
1
- import { BaseChain, ChainValues, ChainInputs } from "./index.js";
1
+ import { BaseChain, ChainInputs, ChainValues } from "./index.js";
2
2
  import { BaseLLM, SerializedLLM } from "../llms/index.js";
3
+ import { BaseLanguageModel } from "../schema/index.js";
3
4
  import { BaseMemory } from "../memory/index.js";
4
5
  import { BasePromptTemplate, SerializedBasePromptTemplate } from "../prompts/index.js";
5
6
  export interface LLMChainInput extends ChainInputs {
6
7
  /** Prompt object to use */
7
8
  prompt: BasePromptTemplate;
8
9
  /** LLM Wrapper to use */
9
- llm: BaseLLM;
10
+ llm: BaseLanguageModel;
10
11
  /** @ignore */
11
12
  outputKey: string;
12
13
  }
@@ -31,12 +32,12 @@ export type SerializedLLMChain = {
31
32
  */
32
33
  export declare class LLMChain extends BaseChain implements LLMChainInput {
33
34
  prompt: BasePromptTemplate;
34
- llm: BaseLLM;
35
+ llm: BaseLanguageModel;
35
36
  outputKey: string;
36
37
  get inputKeys(): string[];
37
38
  constructor(fields: {
38
39
  prompt: BasePromptTemplate;
39
- llm: BaseLLM;
40
+ llm: BaseLanguageModel;
40
41
  outputKey?: string;
41
42
  memory?: BaseMemory;
42
43
  });
@@ -48,10 +48,9 @@ export class LLMChain extends BaseChain {
48
48
  if ("stop" in values && Array.isArray(values.stop)) {
49
49
  stop = values.stop;
50
50
  }
51
- const formattedString = await this.prompt.format(values);
52
- const llmResult = await this.llm.call(formattedString, stop);
53
- const result = { [this.outputKey]: llmResult };
54
- return result;
51
+ const promptValue = await this.prompt.formatPromptValue(values);
52
+ const { generations } = await this.llm.generatePrompt([promptValue], stop);
53
+ return { [this.outputKey]: generations[0][0].text };
55
54
  }
56
55
  /**
57
56
  * Format prompt with values and pass to LLM
@@ -82,7 +81,7 @@ export class LLMChain extends BaseChain {
82
81
  serialize() {
83
82
  return {
84
83
  _type: this._chainType(),
85
- llm: this.llm.serialize(),
84
+ // llm: this.llm.serialize(), TODO fix this now that llm is BaseLanguageModel
86
85
  prompt: this.prompt.serialize(),
87
86
  };
88
87
  }
@@ -1 +1 @@
1
- {"version":3,"file":"llm_chain.js","sourceRoot":"","sources":["../../src/chains/llm_chain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"llm_chain.js","sourceRoot":"","sources":["../../src/chains/llm_chain.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"combine_docs_chain.test.js","sourceRoot":"","sources":["../../../src/chains/tests/combine_docs_chain.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAa,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAE5D,IAAI,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;IAC9C,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,aAAa,GAAG,CAAC,CAAC;IAEtB,MAAM,OAAQ,SAAQ,OAAO;QAC3B,QAAQ;YACN,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,KAAK,CAAC,SAAS,CAAC,OAAiB,EAAE,CAAY;YAC7C,OAAO;gBACL,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;oBAClC,IAAI,UAAU,GAAG,EAAE,CAAC;oBACpB,IAAI,MAAM,CAAC,UAAU,CAAC,2BAA2B,CAAC,EAAE;wBAClD,UAAU,IAAI,CAAC,CAAC;wBAChB,UAAU,GAAG,sBAAsB,CAAC;qBACrC;yBAAM,IAAI,MAAM,CAAC,UAAU,CAAC,+BAA+B,CAAC,EAAE;wBAC7D,aAAa,IAAI,CAAC,CAAC;wBACnB,UAAU,GAAG,gBAAgB,CAAC;qBAC/B;oBACD,OAAO;wBACL;4BACE,IAAI,EAAE,UAAU;4BAChB,KAAK,EAAE,CAAC;yBACT;qBACF,CAAC;gBACJ,CAAC,CAAC;aACH,CAAC;QACJ,CAAC;KACF;IAED,MAAM,KAAK,GAAG,IAAI,OAAO,CAAC,EAAE,CAAC,CAAC;IAC9B,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;IACzD,MAAM,IAAI,GAAG;QACX,IAAI,QAAQ,CAAC,EAAE,WAAW,EAAE,0BAA0B,EAAE,CAAC;QACzD,IAAI,QAAQ,CAAC,EAAE,WAAW,EAAE,0BAA0B,EAAE,CAAC;KAC1D,CAAC;IACF,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC;QAC3B,eAAe,EAAE,IAAI;QACrB,QAAQ,EAAE,kCAAkC;KAC7C,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAErB,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;QAClB,IAAI,EAAE,gBAAgB;KACvB,CAAC,CAAC;IACH,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB;IAC9C,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"combine_docs_chain.test.js","sourceRoot":"","sources":["../../../src/chains/tests/combine_docs_chain.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAG5D,IAAI,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;IAC9C,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,aAAa,GAAG,CAAC,CAAC;IAEtB,MAAM,OAAQ,SAAQ,OAAO;QAC3B,QAAQ;YACN,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,KAAK,CAAC,SAAS,CAAC,OAAiB,EAAE,CAAY;YAC7C,OAAO;gBACL,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;oBAClC,IAAI,UAAU,GAAG,EAAE,CAAC;oBACpB,IAAI,MAAM,CAAC,UAAU,CAAC,2BAA2B,CAAC,EAAE;wBAClD,UAAU,IAAI,CAAC,CAAC;wBAChB,UAAU,GAAG,sBAAsB,CAAC;qBACrC;yBAAM,IAAI,MAAM,CAAC,UAAU,CAAC,+BAA+B,CAAC,EAAE;wBAC7D,aAAa,IAAI,CAAC,CAAC;wBACnB,UAAU,GAAG,gBAAgB,CAAC;qBAC/B;oBACD,OAAO;wBACL;4BACE,IAAI,EAAE,UAAU;4BAChB,KAAK,EAAE,CAAC;yBACT;qBACF,CAAC;gBACJ,CAAC,CAAC;aACH,CAAC;QACJ,CAAC;KACF;IAED,MAAM,KAAK,GAAG,IAAI,OAAO,CAAC,EAAE,CAAC,CAAC;IAC9B,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;IACzD,MAAM,IAAI,GAAG;QACX,IAAI,QAAQ,CAAC,EAAE,WAAW,EAAE,0BAA0B,EAAE,CAAC;QACzD,IAAI,QAAQ,CAAC,EAAE,WAAW,EAAE,0BAA0B,EAAE,CAAC;KAC1D,CAAC;IACF,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC;QAC3B,eAAe,EAAE,IAAI;QACrB,QAAQ,EAAE,kCAAkC;KAC7C,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAErB,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;QAClB,IAAI,EAAE,gBAAgB;KACvB,CAAC,CAAC;IACH,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB;IAC9C,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { test } from "@jest/globals";
2
2
  import { OpenAI } from "../../llms/openai.js";
3
- import { PromptTemplate } from "../../prompts/index.js";
3
+ import { ChatOpenAI } from "../../chat_models/index.js";
4
+ import { ChatPromptTemplate, HumanMessagePromptTemplate, PromptTemplate, } from "../../prompts/index.js";
4
5
  import { LLMChain, ConversationChain } from "../llm_chain.js";
5
6
  import { loadChain } from "../load.js";
6
7
  test("Test OpenAI", async () => {
@@ -44,4 +45,16 @@ test("Test ConversationChain", async () => {
44
45
  const res = await chain.call({ input: "my favorite color" });
45
46
  console.log({ res });
46
47
  });
48
+ test("Test LLMChain with ChatOpenAI", async () => {
49
+ const model = new ChatOpenAI({ temperature: 0.9 });
50
+ const template = "What is a good name for a company that makes {product}?";
51
+ const prompt = new PromptTemplate({ template, inputVariables: ["product"] });
52
+ const humanMessagePrompt = new HumanMessagePromptTemplate(prompt);
53
+ const chatPromptTemplate = ChatPromptTemplate.fromPromptMessages([
54
+ humanMessagePrompt,
55
+ ]);
56
+ const chatChain = new LLMChain({ llm: model, prompt: chatPromptTemplate });
57
+ const res = await chatChain.call({ product: "colorful socks" });
58
+ console.log({ res });
59
+ });
47
60
  //# sourceMappingURL=llm_chain.int.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"llm_chain.int.test.js","sourceRoot":"","sources":["../../../src/chains/tests/llm_chain.int.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"llm_chain.int.test.js","sourceRoot":"","sources":["../../../src/chains/tests/llm_chain.int.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import { BaseChatMessage, BaseLanguageModel, BasePromptValue, ChatResult, LLMCallbackManager, LLMResult } from "../schema/index.js";
2
+ export type SerializedChatModel = {
3
+ _model: string;
4
+ _type: string;
5
+ } & Record<string, any>;
6
+ export declare abstract class BaseChatModel extends BaseLanguageModel {
7
+ callbackManager: LLMCallbackManager;
8
+ verbose: boolean;
9
+ protected constructor(callbackManager?: LLMCallbackManager, verbose?: boolean);
10
+ generate(messages: BaseChatMessage[][], stop?: string[]): Promise<LLMResult>;
11
+ /**
12
+ * Get the identifying parameters of the LLM.
13
+ */
14
+ _identifyingParams(): Record<string, any>;
15
+ _modelType(): string;
16
+ abstract _llmType(): string;
17
+ /**
18
+ * Return a json-like object representing this Chat model.
19
+ */
20
+ serialize(): SerializedChatModel;
21
+ private _tokenizer?;
22
+ getNumTokens(text: string): number;
23
+ generatePrompt(promptValues: BasePromptValue[], stop?: string[]): Promise<LLMResult>;
24
+ abstract _generate(messages: BaseChatMessage[], stop?: string[]): Promise<ChatResult>;
25
+ call(messages: BaseChatMessage[], stop?: string[]): Promise<BaseChatMessage>;
26
+ callPrompt(promptValue: BasePromptValue, stop?: string[]): Promise<BaseChatMessage>;
27
+ }
28
+ export declare abstract class SimpleChatModel extends BaseChatModel {
29
+ protected constructor(callbackManager?: LLMCallbackManager, verbose?: boolean);
30
+ abstract _call(messages: BaseChatMessage[], stop?: string[]): Promise<string>;
31
+ _generate(messages: BaseChatMessage[], stop?: string[]): Promise<ChatResult>;
32
+ }
@@ -0,0 +1,110 @@
1
+ import GPT3Tokenizer from "gpt3-tokenizer";
2
+ import { AIChatMessage, BaseLanguageModel, } from "../schema/index.js";
3
+ const getCallbackManager = () => ({
4
+ handleStart: (..._args) => {
5
+ // console.log(args);
6
+ },
7
+ handleEnd: (..._args) => {
8
+ // console.log(args);
9
+ },
10
+ handleError: (..._args) => {
11
+ // console.log(args);
12
+ },
13
+ });
14
+ const getVerbosity = () => true;
15
+ export class BaseChatModel extends BaseLanguageModel {
16
+ constructor(callbackManager, verbose) {
17
+ super();
18
+ Object.defineProperty(this, "callbackManager", {
19
+ enumerable: true,
20
+ configurable: true,
21
+ writable: true,
22
+ value: void 0
23
+ });
24
+ Object.defineProperty(this, "verbose", {
25
+ enumerable: true,
26
+ configurable: true,
27
+ writable: true,
28
+ value: void 0
29
+ });
30
+ // TODO deserialize
31
+ Object.defineProperty(this, "_tokenizer", {
32
+ enumerable: true,
33
+ configurable: true,
34
+ writable: true,
35
+ value: void 0
36
+ });
37
+ this.callbackManager = callbackManager ?? getCallbackManager();
38
+ this.verbose = verbose ?? getVerbosity();
39
+ }
40
+ async generate(messages, stop) {
41
+ const generations = [];
42
+ for (const message of messages) {
43
+ const result = await this._generate(message, stop);
44
+ generations.push(result.generations);
45
+ }
46
+ return {
47
+ generations,
48
+ };
49
+ }
50
+ /**
51
+ * Get the identifying parameters of the LLM.
52
+ */
53
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
54
+ _identifyingParams() {
55
+ return {};
56
+ }
57
+ _modelType() {
58
+ return "base_chat_model";
59
+ }
60
+ /**
61
+ * Return a json-like object representing this Chat model.
62
+ */
63
+ serialize() {
64
+ return {
65
+ ...this._identifyingParams(),
66
+ _type: this._llmType(),
67
+ _model: this._modelType(),
68
+ };
69
+ }
70
+ getNumTokens(text) {
71
+ // TODOs copied from py implementation
72
+ // TODO: this method may not be exact.
73
+ // TODO: this method may differ based on model (eg codex, gpt-3.5).
74
+ if (this._tokenizer === undefined) {
75
+ const Constructor = GPT3Tokenizer.default;
76
+ this._tokenizer = new Constructor({ type: "gpt3" });
77
+ }
78
+ return this._tokenizer.encode(text).bpe.length;
79
+ }
80
+ async generatePrompt(promptValues, stop) {
81
+ const promptMessages = promptValues.map((promptValue) => promptValue.toChatMessages());
82
+ return this.generate(promptMessages, stop);
83
+ }
84
+ async call(messages, stop) {
85
+ const { generations } = await this._generate(messages, stop);
86
+ return generations[0].message;
87
+ }
88
+ async callPrompt(promptValue, stop) {
89
+ const promptMessages = promptValue.toChatMessages();
90
+ return this.call(promptMessages, stop);
91
+ }
92
+ }
93
+ export class SimpleChatModel extends BaseChatModel {
94
+ constructor(callbackManager, verbose) {
95
+ super(callbackManager, verbose);
96
+ }
97
+ async _generate(messages, stop) {
98
+ const text = await this._call(messages, stop);
99
+ const message = new AIChatMessage(text);
100
+ return {
101
+ generations: [
102
+ {
103
+ text: message.text,
104
+ message,
105
+ },
106
+ ],
107
+ };
108
+ }
109
+ }
110
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/chat_models/base.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export { ChatOpenAI } from "./openai.js";
@@ -0,0 +1,2 @@
1
+ export { ChatOpenAI } from "./openai.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/chat_models/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,150 @@
1
+ import { CreateChatCompletionRequest, ConfigurationParameters } from "openai";
2
+ import { BaseChatModel } from "./base.js";
3
+ import { BaseChatMessage, ChatResult, LLMCallbackManager } from "../schema/index.js";
4
+ interface ModelParams {
5
+ /** Sampling temperature to use, between 0 and 2, defaults to 1 */
6
+ temperature: number;
7
+ /** Total probability mass of tokens to consider at each step, between 0 and 1, defaults to 1 */
8
+ topP: number;
9
+ /** Penalizes repeated tokens according to frequency */
10
+ frequencyPenalty: number;
11
+ /** Penalizes repeated tokens */
12
+ presencePenalty: number;
13
+ /** Number of chat completions to generate for each prompt */
14
+ n: number;
15
+ /** Dictionary used to adjust the probability of specific tokens being generated */
16
+ logitBias?: Record<string, number>;
17
+ /** Whether to stream the results or not */
18
+ streaming: boolean;
19
+ /**
20
+ * Maximum number of tokens to generate in the completion. -1 returns as many
21
+ * tokens as possible given the prompt and the model's maximum context size.
22
+ */
23
+ maxTokens: number;
24
+ }
25
+ /**
26
+ * Input to OpenAI class.
27
+ * @augments ModelParams
28
+ */
29
+ interface OpenAIInput extends ModelParams {
30
+ /** Model name to use */
31
+ modelName: string;
32
+ /** Holds any additional parameters that are valid to pass to {@link
33
+ * https://platform.openai.com/docs/api-reference/completions/create |
34
+ * `openai.create`} that are not explicitly specified on this class.
35
+ */
36
+ modelKwargs?: Kwargs;
37
+ /** Maximum number of retries to make when generating */
38
+ maxRetries: number;
39
+ /** List of stop words to use when generating */
40
+ stop?: string[];
41
+ }
42
+ type Kwargs = Record<string, any>;
43
+ /**
44
+ * Wrapper around OpenAI large language models that use the Chat endpoint.
45
+ *
46
+ * To use you should have the `openai` package installed, with the
47
+ * `OPENAI_API_KEY` environment variable set.
48
+ *
49
+ * @remarks
50
+ * Any parameters that are valid to be passed to {@link
51
+ * https://platform.openai.com/docs/api-reference/chat/create |
52
+ * `openai.createCompletion`} can be passed through {@link modelKwargs}, even
53
+ * if not explicitly available on this class.
54
+ *
55
+ * @augments BaseLLM
56
+ * @augments OpenAIInput
57
+ */
58
+ export declare class ChatOpenAI extends BaseChatModel implements OpenAIInput {
59
+ temperature: number;
60
+ topP: number;
61
+ frequencyPenalty: number;
62
+ presencePenalty: number;
63
+ n: number;
64
+ logitBias?: Record<string, number>;
65
+ modelName: string;
66
+ modelKwargs?: Kwargs;
67
+ maxRetries: number;
68
+ stop?: string[];
69
+ streaming: boolean;
70
+ maxTokens: number;
71
+ private batchClient;
72
+ private streamingClient;
73
+ private clientConfig;
74
+ constructor(fields?: Partial<OpenAIInput> & {
75
+ callbackManager?: LLMCallbackManager;
76
+ concurrency?: number;
77
+ cache?: boolean;
78
+ verbose?: boolean;
79
+ openAIApiKey?: string;
80
+ }, configuration?: ConfigurationParameters);
81
+ /**
82
+ * Get the parameters used to invoke the model
83
+ */
84
+ invocationParams(): Omit<CreateChatCompletionRequest, "messages"> & Kwargs;
85
+ _identifyingParams(): {
86
+ apiKey?: string | Promise<string> | ((name: string) => string) | ((name: string) => Promise<string>) | undefined;
87
+ organization?: string | undefined;
88
+ username?: string | undefined;
89
+ password?: string | undefined;
90
+ accessToken?: string | Promise<string> | ((name?: string | undefined, scopes?: string[] | undefined) => string) | ((name?: string | undefined, scopes?: string[] | undefined) => Promise<string>) | undefined;
91
+ basePath?: string | undefined;
92
+ baseOptions?: any;
93
+ formDataCtor?: (new () => any) | undefined;
94
+ stop?: import("openai").CreateChatCompletionRequestStop | undefined;
95
+ model: string;
96
+ temperature?: number | null | undefined;
97
+ top_p?: number | null | undefined;
98
+ n?: number | null | undefined;
99
+ stream?: boolean | null | undefined;
100
+ presence_penalty?: number | null | undefined;
101
+ frequency_penalty?: number | null | undefined;
102
+ logit_bias?: object | null | undefined;
103
+ user?: string | undefined;
104
+ model_name: string;
105
+ };
106
+ /**
107
+ * Get the identifying parameters for the model
108
+ */
109
+ identifyingParams(): {
110
+ apiKey?: string | Promise<string> | ((name: string) => string) | ((name: string) => Promise<string>) | undefined;
111
+ organization?: string | undefined;
112
+ username?: string | undefined;
113
+ password?: string | undefined;
114
+ accessToken?: string | Promise<string> | ((name?: string | undefined, scopes?: string[] | undefined) => string) | ((name?: string | undefined, scopes?: string[] | undefined) => Promise<string>) | undefined;
115
+ basePath?: string | undefined;
116
+ baseOptions?: any;
117
+ formDataCtor?: (new () => any) | undefined;
118
+ stop?: import("openai").CreateChatCompletionRequestStop | undefined;
119
+ model: string;
120
+ temperature?: number | null | undefined;
121
+ top_p?: number | null | undefined;
122
+ n?: number | null | undefined;
123
+ stream?: boolean | null | undefined;
124
+ presence_penalty?: number | null | undefined;
125
+ frequency_penalty?: number | null | undefined;
126
+ logit_bias?: object | null | undefined;
127
+ user?: string | undefined;
128
+ model_name: string;
129
+ };
130
+ /**
131
+ * Call out to OpenAI's endpoint with k unique prompts
132
+ *
133
+ * @param messages - The messages to pass into the model.
134
+ * @param [stop] - Optional list of stop words to use when generating.
135
+ *
136
+ * @returns The full LLM output.
137
+ *
138
+ * @example
139
+ * ```ts
140
+ * import { OpenAI } from "langchain/llms";
141
+ * const openai = new OpenAI();
142
+ * const response = await openai.generate(["Tell me a joke."]);
143
+ * ```
144
+ */
145
+ _generate(messages: BaseChatMessage[], stop?: string[]): Promise<ChatResult>;
146
+ /** @ignore */
147
+ completionWithRetry(request: CreateChatCompletionRequest): Promise<import("axios").AxiosResponse<import("openai").CreateChatCompletionResponse, any>>;
148
+ _llmType(): string;
149
+ }
150
+ export {};