@langchain/together-ai 0.1.5 → 0.2.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/CHANGELOG.md +11 -0
- package/dist/chat_models.cjs +4 -1
- package/dist/chat_models.cjs.map +1 -1
- package/dist/chat_models.d.cts +1 -0
- package/dist/chat_models.d.cts.map +1 -1
- package/dist/chat_models.d.ts +1 -0
- package/dist/chat_models.d.ts.map +1 -1
- package/dist/chat_models.js +4 -1
- package/dist/chat_models.js.map +1 -1
- package/dist/llms.cjs +1 -1
- package/dist/llms.cjs.map +1 -1
- package/dist/llms.js +1 -1
- package/dist/llms.js.map +1 -1
- package/package.json +7 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# @langchain/together-ai
|
|
2
2
|
|
|
3
|
+
## 0.2.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#10924](https://github.com/langchain-ai/langchainjs/pull/10924) [`2e28115`](https://github.com/langchain-ai/langchainjs/commit/2e2811509d75af94f57cedcc3842f178f4c020d1) Thanks [@christian-bromann](https://github.com/christian-bromann)! - feat(together-ai): enable native OpenAI-compatible streamEvents events
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Updated dependencies [[`2e28115`](https://github.com/langchain-ai/langchainjs/commit/2e2811509d75af94f57cedcc3842f178f4c020d1)]:
|
|
12
|
+
- @langchain/openai@1.5.0
|
|
13
|
+
|
|
3
14
|
## 0.1.5
|
|
4
15
|
|
|
5
16
|
### Patch Changes
|
package/dist/chat_models.cjs
CHANGED
|
@@ -58,7 +58,7 @@ var ChatTogetherAI = class extends _langchain_openai.ChatOpenAICompletions {
|
|
|
58
58
|
...fields?.configuration
|
|
59
59
|
}
|
|
60
60
|
});
|
|
61
|
-
this._addVersion("@langchain/together-ai", "0.
|
|
61
|
+
this._addVersion("@langchain/together-ai", "0.2.0");
|
|
62
62
|
}
|
|
63
63
|
getLsParams(options) {
|
|
64
64
|
const params = super.getLsParams(options);
|
|
@@ -80,6 +80,9 @@ var ChatTogetherAI = class extends _langchain_openai.ChatOpenAICompletions {
|
|
|
80
80
|
delete request.functions;
|
|
81
81
|
return super.completionWithRetry(request, options);
|
|
82
82
|
}
|
|
83
|
+
get streamEventProvider() {
|
|
84
|
+
return "together";
|
|
85
|
+
}
|
|
83
86
|
};
|
|
84
87
|
//#endregion
|
|
85
88
|
exports.ChatTogetherAI = ChatTogetherAI;
|
package/dist/chat_models.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat_models.cjs","names":["ChatOpenAICompletions"],"sources":["../src/chat_models.ts"],"sourcesContent":["import type {\n BaseChatModelParams,\n LangSmithParams,\n} from \"@langchain/core/language_models/chat_models\";\nimport { getEnvironmentVariable } from \"@langchain/core/utils/env\";\nimport {\n type ChatOpenAICallOptions,\n ChatOpenAICompletions,\n type OpenAIChatInput,\n type OpenAICoreRequestOptions,\n type OpenAIClient,\n} from \"@langchain/openai\";\n\ntype TogetherAIUnsupportedArgs =\n | \"frequencyPenalty\"\n | \"presencePenalty\"\n | \"logitBias\"\n | \"functions\";\n\ntype TogetherAIUnsupportedCallOptions = \"functions\" | \"function_call\";\n\nexport interface ChatTogetherAICallOptions extends Omit<\n ChatOpenAICallOptions,\n TogetherAIUnsupportedCallOptions\n> {\n response_format?: {\n type: \"json_object\";\n schema: Record<string, unknown>;\n };\n}\n\nexport interface ChatTogetherAIInput\n extends\n Omit<OpenAIChatInput, \"openAIApiKey\" | TogetherAIUnsupportedArgs>,\n BaseChatModelParams {\n /**\n * The Together AI API key to use for requests.\n * Alias for `apiKey`.\n * @default process.env.TOGETHER_AI_API_KEY\n */\n togetherAIApiKey?: string;\n /**\n * The Together AI API key to use for requests.\n * @default process.env.TOGETHER_AI_API_KEY\n */\n apiKey?: string;\n}\n\n/**\n * Together AI chat model integration.\n *\n * The Together AI chat API is OpenAI-compatible with a few unsupported request\n * fields. Full API reference:\n * https://docs.together.ai/reference/chat-completions\n *\n * Setup:\n * Install `@langchain/together-ai` and set an environment variable named\n * `TOGETHER_AI_API_KEY`.\n *\n * ```bash\n * npm install @langchain/together-ai\n * export TOGETHER_AI_API_KEY=\"your-api-key\"\n * ```\n *\n * ## [Constructor args](https://api.js.langchain.com/classes/_langchain_together_ai.ChatTogetherAI.html#constructor)\n *\n * ## [Runtime args](https://api.js.langchain.com/interfaces/_langchain_together_ai.ChatTogetherAICallOptions.html)\n */\nexport class ChatTogetherAI extends ChatOpenAICompletions<ChatTogetherAICallOptions> {\n static lc_name() {\n return \"ChatTogetherAI\";\n }\n\n lc_serializable = true;\n\n lc_namespace = [\"langchain\", \"chat_models\", \"together_ai\"];\n\n _llmType() {\n return \"togetherAI\";\n }\n\n get lc_secrets(): { [key: string]: string } | undefined {\n return {\n togetherAIApiKey: \"TOGETHER_AI_API_KEY\",\n apiKey: \"TOGETHER_AI_API_KEY\",\n };\n }\n\n get lc_aliases(): { [key: string]: string } | undefined {\n return {\n togetherAIApiKey: \"together_ai_api_key\",\n apiKey: \"together_ai_api_key\",\n };\n }\n\n constructor(fields?: Partial<ChatTogetherAIInput>) {\n const togetherAIApiKey =\n fields?.apiKey ||\n fields?.togetherAIApiKey ||\n getEnvironmentVariable(\"TOGETHER_AI_API_KEY\");\n\n if (!togetherAIApiKey) {\n throw new Error(\n 'Together AI API key not found. Please set the TOGETHER_AI_API_KEY environment variable or pass the key into the \"apiKey\" field.'\n );\n }\n\n super({\n ...fields,\n model: fields?.model || \"mistralai/Mixtral-8x7B-Instruct-v0.1\",\n apiKey: togetherAIApiKey,\n configuration: {\n baseURL: \"https://api.together.xyz/v1/\",\n ...fields?.configuration,\n },\n });\n this._addVersion(\"@langchain/together-ai\", __PKG_VERSION__);\n }\n\n getLsParams(options: this[\"ParsedCallOptions\"]): LangSmithParams {\n const params = super.getLsParams(options);\n params.ls_provider = \"together\";\n return params;\n }\n\n toJSON() {\n const result = super.toJSON();\n\n if (\n \"kwargs\" in result &&\n typeof result.kwargs === \"object\" &&\n result.kwargs != null\n ) {\n delete result.kwargs.openai_api_key;\n delete result.kwargs.configuration;\n }\n\n return result;\n }\n\n async completionWithRetry(\n request: OpenAIClient.Chat.ChatCompletionCreateParamsStreaming,\n options?: OpenAICoreRequestOptions\n ): Promise<AsyncIterable<OpenAIClient.Chat.Completions.ChatCompletionChunk>>;\n\n async completionWithRetry(\n request: OpenAIClient.Chat.ChatCompletionCreateParamsNonStreaming,\n options?: OpenAICoreRequestOptions\n ): Promise<OpenAIClient.Chat.Completions.ChatCompletion>;\n\n async completionWithRetry(\n request:\n | OpenAIClient.Chat.ChatCompletionCreateParamsStreaming\n | OpenAIClient.Chat.ChatCompletionCreateParamsNonStreaming,\n options?: OpenAICoreRequestOptions\n ): Promise<\n | AsyncIterable<OpenAIClient.Chat.Completions.ChatCompletionChunk>\n | OpenAIClient.Chat.Completions.ChatCompletion\n > {\n delete request.frequency_penalty;\n delete request.presence_penalty;\n delete request.logit_bias;\n delete request.functions;\n\n return super.completionWithRetry(request, options);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAoEA,IAAa,iBAAb,cAAoCA,kBAAAA,sBAAiD;CACnF,OAAO,UAAU;AACf,SAAO;;CAGT,kBAAkB;CAElB,eAAe;EAAC;EAAa;EAAe;EAAc;CAE1D,WAAW;AACT,SAAO;;CAGT,IAAI,aAAoD;AACtD,SAAO;GACL,kBAAkB;GAClB,QAAQ;GACT;;CAGH,IAAI,aAAoD;AACtD,SAAO;GACL,kBAAkB;GAClB,QAAQ;GACT;;CAGH,YAAY,QAAuC;EACjD,MAAM,mBACJ,QAAQ,UACR,QAAQ,qBAAA,GAAA,0BAAA,wBACe,sBAAsB;AAE/C,MAAI,CAAC,iBACH,OAAM,IAAI,MACR,oIACD;AAGH,QAAM;GACJ,GAAG;GACH,OAAO,QAAQ,SAAS;GACxB,QAAQ;GACR,eAAe;IACb,SAAS;IACT,GAAG,QAAQ;IACZ;GACF,CAAC;AACF,OAAK,YAAY,0BAAA,QAA0C;;CAG7D,YAAY,SAAqD;EAC/D,MAAM,SAAS,MAAM,YAAY,QAAQ;AACzC,SAAO,cAAc;AACrB,SAAO;;CAGT,SAAS;EACP,MAAM,SAAS,MAAM,QAAQ;AAE7B,MACE,YAAY,UACZ,OAAO,OAAO,WAAW,YACzB,OAAO,UAAU,MACjB;AACA,UAAO,OAAO,OAAO;AACrB,UAAO,OAAO,OAAO;;AAGvB,SAAO;;CAaT,MAAM,oBACJ,SAGA,SAIA;AACA,SAAO,QAAQ;AACf,SAAO,QAAQ;AACf,SAAO,QAAQ;AACf,SAAO,QAAQ;AAEf,SAAO,MAAM,oBAAoB,SAAS,QAAQ"}
|
|
1
|
+
{"version":3,"file":"chat_models.cjs","names":["ChatOpenAICompletions"],"sources":["../src/chat_models.ts"],"sourcesContent":["import type {\n BaseChatModelParams,\n LangSmithParams,\n} from \"@langchain/core/language_models/chat_models\";\nimport { getEnvironmentVariable } from \"@langchain/core/utils/env\";\nimport {\n type ChatOpenAICallOptions,\n ChatOpenAICompletions,\n type OpenAIChatInput,\n type OpenAICoreRequestOptions,\n type OpenAIClient,\n} from \"@langchain/openai\";\n\ntype TogetherAIUnsupportedArgs =\n | \"frequencyPenalty\"\n | \"presencePenalty\"\n | \"logitBias\"\n | \"functions\";\n\ntype TogetherAIUnsupportedCallOptions = \"functions\" | \"function_call\";\n\nexport interface ChatTogetherAICallOptions extends Omit<\n ChatOpenAICallOptions,\n TogetherAIUnsupportedCallOptions\n> {\n response_format?: {\n type: \"json_object\";\n schema: Record<string, unknown>;\n };\n}\n\nexport interface ChatTogetherAIInput\n extends\n Omit<OpenAIChatInput, \"openAIApiKey\" | TogetherAIUnsupportedArgs>,\n BaseChatModelParams {\n /**\n * The Together AI API key to use for requests.\n * Alias for `apiKey`.\n * @default process.env.TOGETHER_AI_API_KEY\n */\n togetherAIApiKey?: string;\n /**\n * The Together AI API key to use for requests.\n * @default process.env.TOGETHER_AI_API_KEY\n */\n apiKey?: string;\n}\n\n/**\n * Together AI chat model integration.\n *\n * The Together AI chat API is OpenAI-compatible with a few unsupported request\n * fields. Full API reference:\n * https://docs.together.ai/reference/chat-completions\n *\n * Setup:\n * Install `@langchain/together-ai` and set an environment variable named\n * `TOGETHER_AI_API_KEY`.\n *\n * ```bash\n * npm install @langchain/together-ai\n * export TOGETHER_AI_API_KEY=\"your-api-key\"\n * ```\n *\n * ## [Constructor args](https://api.js.langchain.com/classes/_langchain_together_ai.ChatTogetherAI.html#constructor)\n *\n * ## [Runtime args](https://api.js.langchain.com/interfaces/_langchain_together_ai.ChatTogetherAICallOptions.html)\n */\nexport class ChatTogetherAI extends ChatOpenAICompletions<ChatTogetherAICallOptions> {\n static lc_name() {\n return \"ChatTogetherAI\";\n }\n\n lc_serializable = true;\n\n lc_namespace = [\"langchain\", \"chat_models\", \"together_ai\"];\n\n _llmType() {\n return \"togetherAI\";\n }\n\n get lc_secrets(): { [key: string]: string } | undefined {\n return {\n togetherAIApiKey: \"TOGETHER_AI_API_KEY\",\n apiKey: \"TOGETHER_AI_API_KEY\",\n };\n }\n\n get lc_aliases(): { [key: string]: string } | undefined {\n return {\n togetherAIApiKey: \"together_ai_api_key\",\n apiKey: \"together_ai_api_key\",\n };\n }\n\n constructor(fields?: Partial<ChatTogetherAIInput>) {\n const togetherAIApiKey =\n fields?.apiKey ||\n fields?.togetherAIApiKey ||\n getEnvironmentVariable(\"TOGETHER_AI_API_KEY\");\n\n if (!togetherAIApiKey) {\n throw new Error(\n 'Together AI API key not found. Please set the TOGETHER_AI_API_KEY environment variable or pass the key into the \"apiKey\" field.'\n );\n }\n\n super({\n ...fields,\n model: fields?.model || \"mistralai/Mixtral-8x7B-Instruct-v0.1\",\n apiKey: togetherAIApiKey,\n configuration: {\n baseURL: \"https://api.together.xyz/v1/\",\n ...fields?.configuration,\n },\n });\n this._addVersion(\"@langchain/together-ai\", __PKG_VERSION__);\n }\n\n getLsParams(options: this[\"ParsedCallOptions\"]): LangSmithParams {\n const params = super.getLsParams(options);\n params.ls_provider = \"together\";\n return params;\n }\n\n toJSON() {\n const result = super.toJSON();\n\n if (\n \"kwargs\" in result &&\n typeof result.kwargs === \"object\" &&\n result.kwargs != null\n ) {\n delete result.kwargs.openai_api_key;\n delete result.kwargs.configuration;\n }\n\n return result;\n }\n\n async completionWithRetry(\n request: OpenAIClient.Chat.ChatCompletionCreateParamsStreaming,\n options?: OpenAICoreRequestOptions\n ): Promise<AsyncIterable<OpenAIClient.Chat.Completions.ChatCompletionChunk>>;\n\n async completionWithRetry(\n request: OpenAIClient.Chat.ChatCompletionCreateParamsNonStreaming,\n options?: OpenAICoreRequestOptions\n ): Promise<OpenAIClient.Chat.Completions.ChatCompletion>;\n\n async completionWithRetry(\n request:\n | OpenAIClient.Chat.ChatCompletionCreateParamsStreaming\n | OpenAIClient.Chat.ChatCompletionCreateParamsNonStreaming,\n options?: OpenAICoreRequestOptions\n ): Promise<\n | AsyncIterable<OpenAIClient.Chat.Completions.ChatCompletionChunk>\n | OpenAIClient.Chat.Completions.ChatCompletion\n > {\n delete request.frequency_penalty;\n delete request.presence_penalty;\n delete request.logit_bias;\n delete request.functions;\n\n return super.completionWithRetry(request, options);\n }\n\n protected override get streamEventProvider(): string {\n return \"together\";\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAoEA,IAAa,iBAAb,cAAoCA,kBAAAA,sBAAiD;CACnF,OAAO,UAAU;AACf,SAAO;;CAGT,kBAAkB;CAElB,eAAe;EAAC;EAAa;EAAe;EAAc;CAE1D,WAAW;AACT,SAAO;;CAGT,IAAI,aAAoD;AACtD,SAAO;GACL,kBAAkB;GAClB,QAAQ;GACT;;CAGH,IAAI,aAAoD;AACtD,SAAO;GACL,kBAAkB;GAClB,QAAQ;GACT;;CAGH,YAAY,QAAuC;EACjD,MAAM,mBACJ,QAAQ,UACR,QAAQ,qBAAA,GAAA,0BAAA,wBACe,sBAAsB;AAE/C,MAAI,CAAC,iBACH,OAAM,IAAI,MACR,oIACD;AAGH,QAAM;GACJ,GAAG;GACH,OAAO,QAAQ,SAAS;GACxB,QAAQ;GACR,eAAe;IACb,SAAS;IACT,GAAG,QAAQ;IACZ;GACF,CAAC;AACF,OAAK,YAAY,0BAAA,QAA0C;;CAG7D,YAAY,SAAqD;EAC/D,MAAM,SAAS,MAAM,YAAY,QAAQ;AACzC,SAAO,cAAc;AACrB,SAAO;;CAGT,SAAS;EACP,MAAM,SAAS,MAAM,QAAQ;AAE7B,MACE,YAAY,UACZ,OAAO,OAAO,WAAW,YACzB,OAAO,UAAU,MACjB;AACA,UAAO,OAAO,OAAO;AACrB,UAAO,OAAO,OAAO;;AAGvB,SAAO;;CAaT,MAAM,oBACJ,SAGA,SAIA;AACA,SAAO,QAAQ;AACf,SAAO,QAAQ;AACf,SAAO,QAAQ;AACf,SAAO,QAAQ;AAEf,SAAO,MAAM,oBAAoB,SAAS,QAAQ;;CAGpD,IAAuB,sBAA8B;AACnD,SAAO"}
|
package/dist/chat_models.d.cts
CHANGED
|
@@ -60,6 +60,7 @@ declare class ChatTogetherAI extends ChatOpenAICompletions<ChatTogetherAICallOpt
|
|
|
60
60
|
toJSON(): _$_langchain_core_load_serializable0.Serialized;
|
|
61
61
|
completionWithRetry(request: OpenAIClient.Chat.ChatCompletionCreateParamsStreaming, options?: OpenAICoreRequestOptions): Promise<AsyncIterable<OpenAIClient.Chat.Completions.ChatCompletionChunk>>;
|
|
62
62
|
completionWithRetry(request: OpenAIClient.Chat.ChatCompletionCreateParamsNonStreaming, options?: OpenAICoreRequestOptions): Promise<OpenAIClient.Chat.Completions.ChatCompletion>;
|
|
63
|
+
protected get streamEventProvider(): string;
|
|
63
64
|
}
|
|
64
65
|
//#endregion
|
|
65
66
|
export { ChatTogetherAI, ChatTogetherAICallOptions, ChatTogetherAIInput };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat_models.d.cts","names":[],"sources":["../src/chat_models.ts"],"mappings":";;;;;KAaK,yBAAA;AAAA,KAMA,gCAAA;AAAA,UAEY,yBAAA,SAAkC,IAAA,CACjD,qBAAA,EACA,gCAAA;EAEA,eAAA;IACE,IAAA;IACA,MAAA,EAAQ,MAAA;EAAA;AAAA;AAAA,UAIK,mBAAA,SAEb,IAAA,CAAK,eAAA,mBAAkC,yBAAA,GACvC,mBAAA;EAfiC;;;;AAErC;EAmBE,gBAAA;;;;;EAKA,MAAA;AAAA;;;;;;;;;;;AAdF;;;;;;;;;;cAqCa,cAAA,SAAuB,qBAAA,CAAsB,yBAAA;EAAA,OACjD,OAAA,CAAA;EAIP,eAAA;EAEA,YAAA;EAEA,QAAA,CAAA;EAAA,IAII,UAAA,CAAA;IAAA,CAAiB,GAAA;EAAA;EAAA,IAOjB,UAAA,CAAA;IAAA,CAAiB,GAAA;EAAA;EAOrB,WAAA,CAAY,MAAA,GAAS,OAAA,CAAQ,mBAAA;EAwB7B,WAAA,CAAY,OAAA,8BAAqC,eAAA;EAMjD,MAAA,CAAA,GANgE,oCAAA,CAM1D,UAAA;EAeA,mBAAA,CACJ,OAAA,EAAS,YAAA,CAAa,IAAA,CAAK,mCAAA,EAC3B,OAAA,GAAU,wBAAA,GACT,OAAA,CAAQ,aAAA,CAAc,YAAA,CAAa,IAAA,CAAK,WAAA,CAAY,mBAAA;EAEjD,mBAAA,CACJ,OAAA,EAAS,YAAA,CAAa,IAAA,CAAK,sCAAA,EAC3B,OAAA,GAAU,wBAAA,GACT,OAAA,CAAQ,YAAA,CAAa,IAAA,CAAK,WAAA,CAAY,cAAA;AAAA"}
|
|
1
|
+
{"version":3,"file":"chat_models.d.cts","names":[],"sources":["../src/chat_models.ts"],"mappings":";;;;;KAaK,yBAAA;AAAA,KAMA,gCAAA;AAAA,UAEY,yBAAA,SAAkC,IAAA,CACjD,qBAAA,EACA,gCAAA;EAEA,eAAA;IACE,IAAA;IACA,MAAA,EAAQ,MAAA;EAAA;AAAA;AAAA,UAIK,mBAAA,SAEb,IAAA,CAAK,eAAA,mBAAkC,yBAAA,GACvC,mBAAA;EAfiC;;;;AAErC;EAmBE,gBAAA;;;;;EAKA,MAAA;AAAA;;;;;;;;;;;AAdF;;;;;;;;;;cAqCa,cAAA,SAAuB,qBAAA,CAAsB,yBAAA;EAAA,OACjD,OAAA,CAAA;EAIP,eAAA;EAEA,YAAA;EAEA,QAAA,CAAA;EAAA,IAII,UAAA,CAAA;IAAA,CAAiB,GAAA;EAAA;EAAA,IAOjB,UAAA,CAAA;IAAA,CAAiB,GAAA;EAAA;EAOrB,WAAA,CAAY,MAAA,GAAS,OAAA,CAAQ,mBAAA;EAwB7B,WAAA,CAAY,OAAA,8BAAqC,eAAA;EAMjD,MAAA,CAAA,GANgE,oCAAA,CAM1D,UAAA;EAeA,mBAAA,CACJ,OAAA,EAAS,YAAA,CAAa,IAAA,CAAK,mCAAA,EAC3B,OAAA,GAAU,wBAAA,GACT,OAAA,CAAQ,aAAA,CAAc,YAAA,CAAa,IAAA,CAAK,WAAA,CAAY,mBAAA;EAEjD,mBAAA,CACJ,OAAA,EAAS,YAAA,CAAa,IAAA,CAAK,sCAAA,EAC3B,OAAA,GAAU,wBAAA,GACT,OAAA,CAAQ,YAAA,CAAa,IAAA,CAAK,WAAA,CAAY,cAAA;EAAA,cAmBlB,mBAAA,CAAA;AAAA"}
|
package/dist/chat_models.d.ts
CHANGED
|
@@ -60,6 +60,7 @@ declare class ChatTogetherAI extends ChatOpenAICompletions<ChatTogetherAICallOpt
|
|
|
60
60
|
toJSON(): _$_langchain_core_load_serializable0.Serialized;
|
|
61
61
|
completionWithRetry(request: OpenAIClient.Chat.ChatCompletionCreateParamsStreaming, options?: OpenAICoreRequestOptions): Promise<AsyncIterable<OpenAIClient.Chat.Completions.ChatCompletionChunk>>;
|
|
62
62
|
completionWithRetry(request: OpenAIClient.Chat.ChatCompletionCreateParamsNonStreaming, options?: OpenAICoreRequestOptions): Promise<OpenAIClient.Chat.Completions.ChatCompletion>;
|
|
63
|
+
protected get streamEventProvider(): string;
|
|
63
64
|
}
|
|
64
65
|
//#endregion
|
|
65
66
|
export { ChatTogetherAI, ChatTogetherAICallOptions, ChatTogetherAIInput };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat_models.d.ts","names":[],"sources":["../src/chat_models.ts"],"mappings":";;;;;KAaK,yBAAA;AAAA,KAMA,gCAAA;AAAA,UAEY,yBAAA,SAAkC,IAAA,CACjD,qBAAA,EACA,gCAAA;EAEA,eAAA;IACE,IAAA;IACA,MAAA,EAAQ,MAAA;EAAA;AAAA;AAAA,UAIK,mBAAA,SAEb,IAAA,CAAK,eAAA,mBAAkC,yBAAA,GACvC,mBAAA;EAfiC;;;;AAErC;EAmBE,gBAAA;;;;;EAKA,MAAA;AAAA;;;;;;;;;;;AAdF;;;;;;;;;;cAqCa,cAAA,SAAuB,qBAAA,CAAsB,yBAAA;EAAA,OACjD,OAAA,CAAA;EAIP,eAAA;EAEA,YAAA;EAEA,QAAA,CAAA;EAAA,IAII,UAAA,CAAA;IAAA,CAAiB,GAAA;EAAA;EAAA,IAOjB,UAAA,CAAA;IAAA,CAAiB,GAAA;EAAA;EAOrB,WAAA,CAAY,MAAA,GAAS,OAAA,CAAQ,mBAAA;EAwB7B,WAAA,CAAY,OAAA,8BAAqC,eAAA;EAMjD,MAAA,CAAA,GANgE,oCAAA,CAM1D,UAAA;EAeA,mBAAA,CACJ,OAAA,EAAS,YAAA,CAAa,IAAA,CAAK,mCAAA,EAC3B,OAAA,GAAU,wBAAA,GACT,OAAA,CAAQ,aAAA,CAAc,YAAA,CAAa,IAAA,CAAK,WAAA,CAAY,mBAAA;EAEjD,mBAAA,CACJ,OAAA,EAAS,YAAA,CAAa,IAAA,CAAK,sCAAA,EAC3B,OAAA,GAAU,wBAAA,GACT,OAAA,CAAQ,YAAA,CAAa,IAAA,CAAK,WAAA,CAAY,cAAA;AAAA"}
|
|
1
|
+
{"version":3,"file":"chat_models.d.ts","names":[],"sources":["../src/chat_models.ts"],"mappings":";;;;;KAaK,yBAAA;AAAA,KAMA,gCAAA;AAAA,UAEY,yBAAA,SAAkC,IAAA,CACjD,qBAAA,EACA,gCAAA;EAEA,eAAA;IACE,IAAA;IACA,MAAA,EAAQ,MAAA;EAAA;AAAA;AAAA,UAIK,mBAAA,SAEb,IAAA,CAAK,eAAA,mBAAkC,yBAAA,GACvC,mBAAA;EAfiC;;;;AAErC;EAmBE,gBAAA;;;;;EAKA,MAAA;AAAA;;;;;;;;;;;AAdF;;;;;;;;;;cAqCa,cAAA,SAAuB,qBAAA,CAAsB,yBAAA;EAAA,OACjD,OAAA,CAAA;EAIP,eAAA;EAEA,YAAA;EAEA,QAAA,CAAA;EAAA,IAII,UAAA,CAAA;IAAA,CAAiB,GAAA;EAAA;EAAA,IAOjB,UAAA,CAAA;IAAA,CAAiB,GAAA;EAAA;EAOrB,WAAA,CAAY,MAAA,GAAS,OAAA,CAAQ,mBAAA;EAwB7B,WAAA,CAAY,OAAA,8BAAqC,eAAA;EAMjD,MAAA,CAAA,GANgE,oCAAA,CAM1D,UAAA;EAeA,mBAAA,CACJ,OAAA,EAAS,YAAA,CAAa,IAAA,CAAK,mCAAA,EAC3B,OAAA,GAAU,wBAAA,GACT,OAAA,CAAQ,aAAA,CAAc,YAAA,CAAa,IAAA,CAAK,WAAA,CAAY,mBAAA;EAEjD,mBAAA,CACJ,OAAA,EAAS,YAAA,CAAa,IAAA,CAAK,sCAAA,EAC3B,OAAA,GAAU,wBAAA,GACT,OAAA,CAAQ,YAAA,CAAa,IAAA,CAAK,WAAA,CAAY,cAAA;EAAA,cAmBlB,mBAAA,CAAA;AAAA"}
|
package/dist/chat_models.js
CHANGED
|
@@ -58,7 +58,7 @@ var ChatTogetherAI = class extends ChatOpenAICompletions {
|
|
|
58
58
|
...fields?.configuration
|
|
59
59
|
}
|
|
60
60
|
});
|
|
61
|
-
this._addVersion("@langchain/together-ai", "0.
|
|
61
|
+
this._addVersion("@langchain/together-ai", "0.2.0");
|
|
62
62
|
}
|
|
63
63
|
getLsParams(options) {
|
|
64
64
|
const params = super.getLsParams(options);
|
|
@@ -80,6 +80,9 @@ var ChatTogetherAI = class extends ChatOpenAICompletions {
|
|
|
80
80
|
delete request.functions;
|
|
81
81
|
return super.completionWithRetry(request, options);
|
|
82
82
|
}
|
|
83
|
+
get streamEventProvider() {
|
|
84
|
+
return "together";
|
|
85
|
+
}
|
|
83
86
|
};
|
|
84
87
|
//#endregion
|
|
85
88
|
export { ChatTogetherAI };
|
package/dist/chat_models.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat_models.js","names":[],"sources":["../src/chat_models.ts"],"sourcesContent":["import type {\n BaseChatModelParams,\n LangSmithParams,\n} from \"@langchain/core/language_models/chat_models\";\nimport { getEnvironmentVariable } from \"@langchain/core/utils/env\";\nimport {\n type ChatOpenAICallOptions,\n ChatOpenAICompletions,\n type OpenAIChatInput,\n type OpenAICoreRequestOptions,\n type OpenAIClient,\n} from \"@langchain/openai\";\n\ntype TogetherAIUnsupportedArgs =\n | \"frequencyPenalty\"\n | \"presencePenalty\"\n | \"logitBias\"\n | \"functions\";\n\ntype TogetherAIUnsupportedCallOptions = \"functions\" | \"function_call\";\n\nexport interface ChatTogetherAICallOptions extends Omit<\n ChatOpenAICallOptions,\n TogetherAIUnsupportedCallOptions\n> {\n response_format?: {\n type: \"json_object\";\n schema: Record<string, unknown>;\n };\n}\n\nexport interface ChatTogetherAIInput\n extends\n Omit<OpenAIChatInput, \"openAIApiKey\" | TogetherAIUnsupportedArgs>,\n BaseChatModelParams {\n /**\n * The Together AI API key to use for requests.\n * Alias for `apiKey`.\n * @default process.env.TOGETHER_AI_API_KEY\n */\n togetherAIApiKey?: string;\n /**\n * The Together AI API key to use for requests.\n * @default process.env.TOGETHER_AI_API_KEY\n */\n apiKey?: string;\n}\n\n/**\n * Together AI chat model integration.\n *\n * The Together AI chat API is OpenAI-compatible with a few unsupported request\n * fields. Full API reference:\n * https://docs.together.ai/reference/chat-completions\n *\n * Setup:\n * Install `@langchain/together-ai` and set an environment variable named\n * `TOGETHER_AI_API_KEY`.\n *\n * ```bash\n * npm install @langchain/together-ai\n * export TOGETHER_AI_API_KEY=\"your-api-key\"\n * ```\n *\n * ## [Constructor args](https://api.js.langchain.com/classes/_langchain_together_ai.ChatTogetherAI.html#constructor)\n *\n * ## [Runtime args](https://api.js.langchain.com/interfaces/_langchain_together_ai.ChatTogetherAICallOptions.html)\n */\nexport class ChatTogetherAI extends ChatOpenAICompletions<ChatTogetherAICallOptions> {\n static lc_name() {\n return \"ChatTogetherAI\";\n }\n\n lc_serializable = true;\n\n lc_namespace = [\"langchain\", \"chat_models\", \"together_ai\"];\n\n _llmType() {\n return \"togetherAI\";\n }\n\n get lc_secrets(): { [key: string]: string } | undefined {\n return {\n togetherAIApiKey: \"TOGETHER_AI_API_KEY\",\n apiKey: \"TOGETHER_AI_API_KEY\",\n };\n }\n\n get lc_aliases(): { [key: string]: string } | undefined {\n return {\n togetherAIApiKey: \"together_ai_api_key\",\n apiKey: \"together_ai_api_key\",\n };\n }\n\n constructor(fields?: Partial<ChatTogetherAIInput>) {\n const togetherAIApiKey =\n fields?.apiKey ||\n fields?.togetherAIApiKey ||\n getEnvironmentVariable(\"TOGETHER_AI_API_KEY\");\n\n if (!togetherAIApiKey) {\n throw new Error(\n 'Together AI API key not found. Please set the TOGETHER_AI_API_KEY environment variable or pass the key into the \"apiKey\" field.'\n );\n }\n\n super({\n ...fields,\n model: fields?.model || \"mistralai/Mixtral-8x7B-Instruct-v0.1\",\n apiKey: togetherAIApiKey,\n configuration: {\n baseURL: \"https://api.together.xyz/v1/\",\n ...fields?.configuration,\n },\n });\n this._addVersion(\"@langchain/together-ai\", __PKG_VERSION__);\n }\n\n getLsParams(options: this[\"ParsedCallOptions\"]): LangSmithParams {\n const params = super.getLsParams(options);\n params.ls_provider = \"together\";\n return params;\n }\n\n toJSON() {\n const result = super.toJSON();\n\n if (\n \"kwargs\" in result &&\n typeof result.kwargs === \"object\" &&\n result.kwargs != null\n ) {\n delete result.kwargs.openai_api_key;\n delete result.kwargs.configuration;\n }\n\n return result;\n }\n\n async completionWithRetry(\n request: OpenAIClient.Chat.ChatCompletionCreateParamsStreaming,\n options?: OpenAICoreRequestOptions\n ): Promise<AsyncIterable<OpenAIClient.Chat.Completions.ChatCompletionChunk>>;\n\n async completionWithRetry(\n request: OpenAIClient.Chat.ChatCompletionCreateParamsNonStreaming,\n options?: OpenAICoreRequestOptions\n ): Promise<OpenAIClient.Chat.Completions.ChatCompletion>;\n\n async completionWithRetry(\n request:\n | OpenAIClient.Chat.ChatCompletionCreateParamsStreaming\n | OpenAIClient.Chat.ChatCompletionCreateParamsNonStreaming,\n options?: OpenAICoreRequestOptions\n ): Promise<\n | AsyncIterable<OpenAIClient.Chat.Completions.ChatCompletionChunk>\n | OpenAIClient.Chat.Completions.ChatCompletion\n > {\n delete request.frequency_penalty;\n delete request.presence_penalty;\n delete request.logit_bias;\n delete request.functions;\n\n return super.completionWithRetry(request, options);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAoEA,IAAa,iBAAb,cAAoC,sBAAiD;CACnF,OAAO,UAAU;AACf,SAAO;;CAGT,kBAAkB;CAElB,eAAe;EAAC;EAAa;EAAe;EAAc;CAE1D,WAAW;AACT,SAAO;;CAGT,IAAI,aAAoD;AACtD,SAAO;GACL,kBAAkB;GAClB,QAAQ;GACT;;CAGH,IAAI,aAAoD;AACtD,SAAO;GACL,kBAAkB;GAClB,QAAQ;GACT;;CAGH,YAAY,QAAuC;EACjD,MAAM,mBACJ,QAAQ,UACR,QAAQ,oBACR,uBAAuB,sBAAsB;AAE/C,MAAI,CAAC,iBACH,OAAM,IAAI,MACR,oIACD;AAGH,QAAM;GACJ,GAAG;GACH,OAAO,QAAQ,SAAS;GACxB,QAAQ;GACR,eAAe;IACb,SAAS;IACT,GAAG,QAAQ;IACZ;GACF,CAAC;AACF,OAAK,YAAY,0BAAA,QAA0C;;CAG7D,YAAY,SAAqD;EAC/D,MAAM,SAAS,MAAM,YAAY,QAAQ;AACzC,SAAO,cAAc;AACrB,SAAO;;CAGT,SAAS;EACP,MAAM,SAAS,MAAM,QAAQ;AAE7B,MACE,YAAY,UACZ,OAAO,OAAO,WAAW,YACzB,OAAO,UAAU,MACjB;AACA,UAAO,OAAO,OAAO;AACrB,UAAO,OAAO,OAAO;;AAGvB,SAAO;;CAaT,MAAM,oBACJ,SAGA,SAIA;AACA,SAAO,QAAQ;AACf,SAAO,QAAQ;AACf,SAAO,QAAQ;AACf,SAAO,QAAQ;AAEf,SAAO,MAAM,oBAAoB,SAAS,QAAQ"}
|
|
1
|
+
{"version":3,"file":"chat_models.js","names":[],"sources":["../src/chat_models.ts"],"sourcesContent":["import type {\n BaseChatModelParams,\n LangSmithParams,\n} from \"@langchain/core/language_models/chat_models\";\nimport { getEnvironmentVariable } from \"@langchain/core/utils/env\";\nimport {\n type ChatOpenAICallOptions,\n ChatOpenAICompletions,\n type OpenAIChatInput,\n type OpenAICoreRequestOptions,\n type OpenAIClient,\n} from \"@langchain/openai\";\n\ntype TogetherAIUnsupportedArgs =\n | \"frequencyPenalty\"\n | \"presencePenalty\"\n | \"logitBias\"\n | \"functions\";\n\ntype TogetherAIUnsupportedCallOptions = \"functions\" | \"function_call\";\n\nexport interface ChatTogetherAICallOptions extends Omit<\n ChatOpenAICallOptions,\n TogetherAIUnsupportedCallOptions\n> {\n response_format?: {\n type: \"json_object\";\n schema: Record<string, unknown>;\n };\n}\n\nexport interface ChatTogetherAIInput\n extends\n Omit<OpenAIChatInput, \"openAIApiKey\" | TogetherAIUnsupportedArgs>,\n BaseChatModelParams {\n /**\n * The Together AI API key to use for requests.\n * Alias for `apiKey`.\n * @default process.env.TOGETHER_AI_API_KEY\n */\n togetherAIApiKey?: string;\n /**\n * The Together AI API key to use for requests.\n * @default process.env.TOGETHER_AI_API_KEY\n */\n apiKey?: string;\n}\n\n/**\n * Together AI chat model integration.\n *\n * The Together AI chat API is OpenAI-compatible with a few unsupported request\n * fields. Full API reference:\n * https://docs.together.ai/reference/chat-completions\n *\n * Setup:\n * Install `@langchain/together-ai` and set an environment variable named\n * `TOGETHER_AI_API_KEY`.\n *\n * ```bash\n * npm install @langchain/together-ai\n * export TOGETHER_AI_API_KEY=\"your-api-key\"\n * ```\n *\n * ## [Constructor args](https://api.js.langchain.com/classes/_langchain_together_ai.ChatTogetherAI.html#constructor)\n *\n * ## [Runtime args](https://api.js.langchain.com/interfaces/_langchain_together_ai.ChatTogetherAICallOptions.html)\n */\nexport class ChatTogetherAI extends ChatOpenAICompletions<ChatTogetherAICallOptions> {\n static lc_name() {\n return \"ChatTogetherAI\";\n }\n\n lc_serializable = true;\n\n lc_namespace = [\"langchain\", \"chat_models\", \"together_ai\"];\n\n _llmType() {\n return \"togetherAI\";\n }\n\n get lc_secrets(): { [key: string]: string } | undefined {\n return {\n togetherAIApiKey: \"TOGETHER_AI_API_KEY\",\n apiKey: \"TOGETHER_AI_API_KEY\",\n };\n }\n\n get lc_aliases(): { [key: string]: string } | undefined {\n return {\n togetherAIApiKey: \"together_ai_api_key\",\n apiKey: \"together_ai_api_key\",\n };\n }\n\n constructor(fields?: Partial<ChatTogetherAIInput>) {\n const togetherAIApiKey =\n fields?.apiKey ||\n fields?.togetherAIApiKey ||\n getEnvironmentVariable(\"TOGETHER_AI_API_KEY\");\n\n if (!togetherAIApiKey) {\n throw new Error(\n 'Together AI API key not found. Please set the TOGETHER_AI_API_KEY environment variable or pass the key into the \"apiKey\" field.'\n );\n }\n\n super({\n ...fields,\n model: fields?.model || \"mistralai/Mixtral-8x7B-Instruct-v0.1\",\n apiKey: togetherAIApiKey,\n configuration: {\n baseURL: \"https://api.together.xyz/v1/\",\n ...fields?.configuration,\n },\n });\n this._addVersion(\"@langchain/together-ai\", __PKG_VERSION__);\n }\n\n getLsParams(options: this[\"ParsedCallOptions\"]): LangSmithParams {\n const params = super.getLsParams(options);\n params.ls_provider = \"together\";\n return params;\n }\n\n toJSON() {\n const result = super.toJSON();\n\n if (\n \"kwargs\" in result &&\n typeof result.kwargs === \"object\" &&\n result.kwargs != null\n ) {\n delete result.kwargs.openai_api_key;\n delete result.kwargs.configuration;\n }\n\n return result;\n }\n\n async completionWithRetry(\n request: OpenAIClient.Chat.ChatCompletionCreateParamsStreaming,\n options?: OpenAICoreRequestOptions\n ): Promise<AsyncIterable<OpenAIClient.Chat.Completions.ChatCompletionChunk>>;\n\n async completionWithRetry(\n request: OpenAIClient.Chat.ChatCompletionCreateParamsNonStreaming,\n options?: OpenAICoreRequestOptions\n ): Promise<OpenAIClient.Chat.Completions.ChatCompletion>;\n\n async completionWithRetry(\n request:\n | OpenAIClient.Chat.ChatCompletionCreateParamsStreaming\n | OpenAIClient.Chat.ChatCompletionCreateParamsNonStreaming,\n options?: OpenAICoreRequestOptions\n ): Promise<\n | AsyncIterable<OpenAIClient.Chat.Completions.ChatCompletionChunk>\n | OpenAIClient.Chat.Completions.ChatCompletion\n > {\n delete request.frequency_penalty;\n delete request.presence_penalty;\n delete request.logit_bias;\n delete request.functions;\n\n return super.completionWithRetry(request, options);\n }\n\n protected override get streamEventProvider(): string {\n return \"together\";\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAoEA,IAAa,iBAAb,cAAoC,sBAAiD;CACnF,OAAO,UAAU;AACf,SAAO;;CAGT,kBAAkB;CAElB,eAAe;EAAC;EAAa;EAAe;EAAc;CAE1D,WAAW;AACT,SAAO;;CAGT,IAAI,aAAoD;AACtD,SAAO;GACL,kBAAkB;GAClB,QAAQ;GACT;;CAGH,IAAI,aAAoD;AACtD,SAAO;GACL,kBAAkB;GAClB,QAAQ;GACT;;CAGH,YAAY,QAAuC;EACjD,MAAM,mBACJ,QAAQ,UACR,QAAQ,oBACR,uBAAuB,sBAAsB;AAE/C,MAAI,CAAC,iBACH,OAAM,IAAI,MACR,oIACD;AAGH,QAAM;GACJ,GAAG;GACH,OAAO,QAAQ,SAAS;GACxB,QAAQ;GACR,eAAe;IACb,SAAS;IACT,GAAG,QAAQ;IACZ;GACF,CAAC;AACF,OAAK,YAAY,0BAAA,QAA0C;;CAG7D,YAAY,SAAqD;EAC/D,MAAM,SAAS,MAAM,YAAY,QAAQ;AACzC,SAAO,cAAc;AACrB,SAAO;;CAGT,SAAS;EACP,MAAM,SAAS,MAAM,QAAQ;AAE7B,MACE,YAAY,UACZ,OAAO,OAAO,WAAW,YACzB,OAAO,UAAU,MACjB;AACA,UAAO,OAAO,OAAO;AACrB,UAAO,OAAO,OAAO;;AAGvB,SAAO;;CAaT,MAAM,oBACJ,SAGA,SAIA;AACA,SAAO,QAAQ;AACf,SAAO,QAAQ;AACf,SAAO,QAAQ;AACf,SAAO,QAAQ;AAEf,SAAO,MAAM,oBAAoB,SAAS,QAAQ;;CAGpD,IAAuB,sBAA8B;AACnD,SAAO"}
|
package/dist/llms.cjs
CHANGED
|
@@ -43,7 +43,7 @@ var TogetherAI = class extends _langchain_core_language_models_llms.LLM {
|
|
|
43
43
|
}
|
|
44
44
|
constructor(inputs) {
|
|
45
45
|
super(inputs);
|
|
46
|
-
this._addVersion("@langchain/together-ai", "0.
|
|
46
|
+
this._addVersion("@langchain/together-ai", "0.2.0");
|
|
47
47
|
const apiKey = inputs.apiKey ?? (0, _langchain_core_utils_env.getEnvironmentVariable)("TOGETHER_AI_API_KEY");
|
|
48
48
|
if (!apiKey) throw new Error("TOGETHER_AI_API_KEY not found.");
|
|
49
49
|
if (!inputs.model && !inputs.modelName) throw new Error("Model name is required for TogetherAI.");
|
package/dist/llms.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llms.cjs","names":["LLM","convertEventStreamToIterableReadableDataStream","GenerationChunk"],"sources":["../src/llms.ts"],"sourcesContent":["import { CallbackManagerForLLMRun } from \"@langchain/core/callbacks/manager\";\nimport {\n LLM,\n type BaseLLMCallOptions,\n type BaseLLMParams,\n} from \"@langchain/core/language_models/llms\";\nimport { GenerationChunk } from \"@langchain/core/outputs\";\nimport { getEnvironmentVariable } from \"@langchain/core/utils/env\";\nimport { convertEventStreamToIterableReadableDataStream } from \"./utils/event_source_parse.js\";\n\ninterface TogetherAIInferenceResult {\n object: string;\n status: string;\n prompt: Array<string>;\n model: string;\n model_owner: string;\n tags: object;\n num_returns: number;\n args: {\n model: string;\n prompt: string;\n temperature: number;\n top_p: number;\n top_k: number;\n max_tokens: number;\n stop: string[];\n };\n subjobs: unknown[];\n output?: {\n choices: Array<{\n finish_reason: string;\n index: number;\n text: string;\n }>;\n raw_compute_time: number;\n result_type: string;\n };\n choices?: Array<{\n finish_reason: string;\n index: number;\n text: string;\n }>;\n}\n\nexport interface TogetherAIInputs extends BaseLLMParams {\n /**\n * The API key to use for the Together AI API.\n * @default {process.env.TOGETHER_AI_API_KEY}\n */\n apiKey?: string;\n /**\n * The name of the model to query.\n * Alias for `model`.\n */\n modelName?: string;\n /**\n * The name of the model to query.\n */\n model?: string;\n /**\n * A decimal number that determines the degree of randomness in the response.\n * @default {0.7}\n */\n temperature?: number;\n /**\n * Whether or not to stream tokens as they are generated.\n * @default {false}\n */\n streaming?: boolean;\n /**\n * Nucleus sampling threshold.\n * @default {0.7}\n */\n topP?: number;\n /**\n * Limit the number of token candidates considered at each step.\n * @default {50}\n */\n topK?: number;\n /**\n * A number that controls repetition.\n * @default {1}\n */\n repetitionPenalty?: number;\n /**\n * An integer that specifies how many top token log probabilities are included.\n */\n logprobs?: number;\n /**\n * Run an LLM-based safeguard model on top of any model.\n */\n safetyModel?: string;\n /**\n * Limit the number of generated tokens.\n */\n maxTokens?: number;\n /**\n * A list of tokens at which the generation should stop.\n */\n stop?: string[];\n}\n\nexport interface TogetherAICallOptions\n extends\n BaseLLMCallOptions,\n Pick<\n TogetherAIInputs,\n | \"modelName\"\n | \"model\"\n | \"temperature\"\n | \"topP\"\n | \"topK\"\n | \"repetitionPenalty\"\n | \"logprobs\"\n | \"safetyModel\"\n | \"maxTokens\"\n | \"stop\"\n > {}\n\nexport class TogetherAI extends LLM<TogetherAICallOptions> {\n lc_serializable = true;\n\n lc_namespace = [\"langchain\", \"llms\", \"together_ai\"];\n\n static inputs: TogetherAIInputs;\n\n temperature = 0.7;\n\n topP = 0.7;\n\n topK = 50;\n\n modelName: string;\n\n model: string;\n\n streaming = false;\n\n repetitionPenalty = 1;\n\n logprobs?: number;\n\n maxTokens?: number;\n\n safetyModel?: string;\n\n stop?: string[];\n\n private apiKey: string;\n\n private inferenceAPIUrl = \"https://api.together.xyz/inference\";\n\n static lc_name() {\n return \"TogetherAI\";\n }\n\n get lc_secrets(): { [key: string]: string } | undefined {\n return {\n apiKey: \"TOGETHER_AI_API_KEY\",\n };\n }\n\n get lc_aliases(): { [key: string]: string } | undefined {\n return {\n apiKey: \"together_ai_api_key\",\n };\n }\n\n private isChatModel(modelName: string): boolean {\n const chatModelPatterns = [/instruct/i, /chat/i, /vision/i, /turbo/i];\n return chatModelPatterns.some((pattern) => pattern.test(modelName));\n }\n\n constructor(inputs: TogetherAIInputs) {\n super(inputs);\n this._addVersion(\"@langchain/together-ai\", __PKG_VERSION__);\n const apiKey =\n inputs.apiKey ?? getEnvironmentVariable(\"TOGETHER_AI_API_KEY\");\n if (!apiKey) {\n throw new Error(\"TOGETHER_AI_API_KEY not found.\");\n }\n if (!inputs.model && !inputs.modelName) {\n throw new Error(\"Model name is required for TogetherAI.\");\n }\n this.apiKey = apiKey;\n this.temperature = inputs.temperature ?? this.temperature;\n this.topK = inputs.topK ?? this.topK;\n this.topP = inputs.topP ?? this.topP;\n this.modelName = inputs.model ?? inputs.modelName ?? \"\";\n this.model = this.modelName;\n this.streaming = inputs.streaming ?? this.streaming;\n this.repetitionPenalty = inputs.repetitionPenalty ?? this.repetitionPenalty;\n this.logprobs = inputs.logprobs;\n this.safetyModel = inputs.safetyModel;\n this.maxTokens = inputs.maxTokens;\n this.stop = inputs.stop;\n\n if (this.isChatModel(this.model)) {\n console.warn(\n `Warning: Model '${this.model}' appears to be a chat/instruct model. ` +\n \"Consider using ChatTogetherAI from @langchain/together-ai instead.\"\n );\n }\n }\n\n _llmType() {\n return \"together_ai\";\n }\n\n private constructHeaders() {\n return {\n accept: \"application/json\",\n \"content-type\": \"application/json\",\n Authorization: `Bearer ${this.apiKey}`,\n };\n }\n\n private constructBody(prompt: string, options?: this[\"ParsedCallOptions\"]) {\n return {\n model: options?.model ?? options?.modelName ?? this.model,\n prompt,\n temperature: options?.temperature ?? this.temperature,\n top_k: options?.topK ?? this.topK,\n top_p: options?.topP ?? this.topP,\n repetition_penalty: options?.repetitionPenalty ?? this.repetitionPenalty,\n logprobs: options?.logprobs ?? this.logprobs,\n stream_tokens: this.streaming,\n safety_model: options?.safetyModel ?? this.safetyModel,\n max_tokens: options?.maxTokens ?? this.maxTokens,\n stop: options?.stop ?? this.stop,\n };\n }\n\n async completionWithRetry(\n prompt: string,\n options?: this[\"ParsedCallOptions\"]\n ) {\n return this.caller.call(async () => {\n const fetchResponse = await fetch(this.inferenceAPIUrl, {\n method: \"POST\",\n headers: {\n ...this.constructHeaders(),\n },\n body: JSON.stringify(this.constructBody(prompt, options)),\n });\n if (fetchResponse.status === 200) {\n return fetchResponse.json();\n }\n const errorResponse = await fetchResponse.json();\n throw new Error(\n `Error getting prompt completion from Together AI. ${JSON.stringify(\n errorResponse,\n null,\n 2\n )}`\n );\n });\n }\n\n async _call(\n prompt: string,\n options?: this[\"ParsedCallOptions\"]\n ): Promise<string> {\n const response: TogetherAIInferenceResult = await this.completionWithRetry(\n prompt,\n options\n );\n\n if (!response.output && !response.choices) {\n throw new Error(\n `Unexpected response format from Together AI. The model '${this.model}' may require the ChatTogetherAI class instead of TogetherAI class. ` +\n `Response: ${JSON.stringify(response, null, 2)}`\n );\n }\n\n if (response.output) {\n return response.output.choices?.[0]?.text ?? \"\";\n }\n return response.choices?.[0]?.text ?? \"\";\n }\n\n async *_streamResponseChunks(\n prompt: string,\n options: this[\"ParsedCallOptions\"],\n runManager?: CallbackManagerForLLMRun\n ): AsyncGenerator<GenerationChunk> {\n const fetchResponse = await fetch(this.inferenceAPIUrl, {\n method: \"POST\",\n headers: {\n ...this.constructHeaders(),\n },\n body: JSON.stringify(this.constructBody(prompt, options)),\n });\n\n if (fetchResponse.status !== 200 || !fetchResponse.body) {\n const errorResponse = await fetchResponse.json();\n throw new Error(\n `Error getting prompt completion from Together AI. ${JSON.stringify(\n errorResponse,\n null,\n 2\n )}`\n );\n }\n const stream = convertEventStreamToIterableReadableDataStream(\n fetchResponse.body\n );\n for await (const chunk of stream) {\n if (chunk !== \"[DONE]\") {\n const parsedChunk = JSON.parse(chunk);\n const generationChunk = new GenerationChunk({\n text: parsedChunk.choices[0].text ?? \"\",\n });\n yield generationChunk;\n // oxlint-disable-next-line no-void\n void runManager?.handleLLMNewToken(generationChunk.text ?? \"\");\n }\n }\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"llms.cjs","names":["LLM","convertEventStreamToIterableReadableDataStream","GenerationChunk"],"sources":["../src/llms.ts"],"sourcesContent":["import { CallbackManagerForLLMRun } from \"@langchain/core/callbacks/manager\";\nimport {\n LLM,\n type BaseLLMCallOptions,\n type BaseLLMParams,\n} from \"@langchain/core/language_models/llms\";\nimport { GenerationChunk } from \"@langchain/core/outputs\";\nimport { getEnvironmentVariable } from \"@langchain/core/utils/env\";\nimport { convertEventStreamToIterableReadableDataStream } from \"./utils/event_source_parse.js\";\n\ninterface TogetherAIInferenceResult {\n object: string;\n status: string;\n prompt: Array<string>;\n model: string;\n model_owner: string;\n tags: object;\n num_returns: number;\n args: {\n model: string;\n prompt: string;\n temperature: number;\n top_p: number;\n top_k: number;\n max_tokens: number;\n stop: string[];\n };\n subjobs: unknown[];\n output?: {\n choices: Array<{\n finish_reason: string;\n index: number;\n text: string;\n }>;\n raw_compute_time: number;\n result_type: string;\n };\n choices?: Array<{\n finish_reason: string;\n index: number;\n text: string;\n }>;\n}\n\nexport interface TogetherAIInputs extends BaseLLMParams {\n /**\n * The API key to use for the Together AI API.\n * @default {process.env.TOGETHER_AI_API_KEY}\n */\n apiKey?: string;\n /**\n * The name of the model to query.\n * Alias for `model`.\n */\n modelName?: string;\n /**\n * The name of the model to query.\n */\n model?: string;\n /**\n * A decimal number that determines the degree of randomness in the response.\n * @default {0.7}\n */\n temperature?: number;\n /**\n * Whether or not to stream tokens as they are generated.\n * @default {false}\n */\n streaming?: boolean;\n /**\n * Nucleus sampling threshold.\n * @default {0.7}\n */\n topP?: number;\n /**\n * Limit the number of token candidates considered at each step.\n * @default {50}\n */\n topK?: number;\n /**\n * A number that controls repetition.\n * @default {1}\n */\n repetitionPenalty?: number;\n /**\n * An integer that specifies how many top token log probabilities are included.\n */\n logprobs?: number;\n /**\n * Run an LLM-based safeguard model on top of any model.\n */\n safetyModel?: string;\n /**\n * Limit the number of generated tokens.\n */\n maxTokens?: number;\n /**\n * A list of tokens at which the generation should stop.\n */\n stop?: string[];\n}\n\nexport interface TogetherAICallOptions\n extends\n BaseLLMCallOptions,\n Pick<\n TogetherAIInputs,\n | \"modelName\"\n | \"model\"\n | \"temperature\"\n | \"topP\"\n | \"topK\"\n | \"repetitionPenalty\"\n | \"logprobs\"\n | \"safetyModel\"\n | \"maxTokens\"\n | \"stop\"\n > {}\n\nexport class TogetherAI extends LLM<TogetherAICallOptions> {\n lc_serializable = true;\n\n lc_namespace = [\"langchain\", \"llms\", \"together_ai\"];\n\n static inputs: TogetherAIInputs;\n\n temperature = 0.7;\n\n topP = 0.7;\n\n topK = 50;\n\n modelName: string;\n\n model: string;\n\n streaming = false;\n\n repetitionPenalty = 1;\n\n logprobs?: number;\n\n maxTokens?: number;\n\n safetyModel?: string;\n\n stop?: string[];\n\n private apiKey: string;\n\n private inferenceAPIUrl = \"https://api.together.xyz/inference\";\n\n static lc_name() {\n return \"TogetherAI\";\n }\n\n get lc_secrets(): { [key: string]: string } | undefined {\n return {\n apiKey: \"TOGETHER_AI_API_KEY\",\n };\n }\n\n get lc_aliases(): { [key: string]: string } | undefined {\n return {\n apiKey: \"together_ai_api_key\",\n };\n }\n\n private isChatModel(modelName: string): boolean {\n const chatModelPatterns = [/instruct/i, /chat/i, /vision/i, /turbo/i];\n return chatModelPatterns.some((pattern) => pattern.test(modelName));\n }\n\n constructor(inputs: TogetherAIInputs) {\n super(inputs);\n this._addVersion(\"@langchain/together-ai\", __PKG_VERSION__);\n const apiKey =\n inputs.apiKey ?? getEnvironmentVariable(\"TOGETHER_AI_API_KEY\");\n if (!apiKey) {\n throw new Error(\"TOGETHER_AI_API_KEY not found.\");\n }\n if (!inputs.model && !inputs.modelName) {\n throw new Error(\"Model name is required for TogetherAI.\");\n }\n this.apiKey = apiKey;\n this.temperature = inputs.temperature ?? this.temperature;\n this.topK = inputs.topK ?? this.topK;\n this.topP = inputs.topP ?? this.topP;\n this.modelName = inputs.model ?? inputs.modelName ?? \"\";\n this.model = this.modelName;\n this.streaming = inputs.streaming ?? this.streaming;\n this.repetitionPenalty = inputs.repetitionPenalty ?? this.repetitionPenalty;\n this.logprobs = inputs.logprobs;\n this.safetyModel = inputs.safetyModel;\n this.maxTokens = inputs.maxTokens;\n this.stop = inputs.stop;\n\n if (this.isChatModel(this.model)) {\n console.warn(\n `Warning: Model '${this.model}' appears to be a chat/instruct model. ` +\n \"Consider using ChatTogetherAI from @langchain/together-ai instead.\"\n );\n }\n }\n\n _llmType() {\n return \"together_ai\";\n }\n\n private constructHeaders() {\n return {\n accept: \"application/json\",\n \"content-type\": \"application/json\",\n Authorization: `Bearer ${this.apiKey}`,\n };\n }\n\n private constructBody(prompt: string, options?: this[\"ParsedCallOptions\"]) {\n return {\n model: options?.model ?? options?.modelName ?? this.model,\n prompt,\n temperature: options?.temperature ?? this.temperature,\n top_k: options?.topK ?? this.topK,\n top_p: options?.topP ?? this.topP,\n repetition_penalty: options?.repetitionPenalty ?? this.repetitionPenalty,\n logprobs: options?.logprobs ?? this.logprobs,\n stream_tokens: this.streaming,\n safety_model: options?.safetyModel ?? this.safetyModel,\n max_tokens: options?.maxTokens ?? this.maxTokens,\n stop: options?.stop ?? this.stop,\n };\n }\n\n async completionWithRetry(\n prompt: string,\n options?: this[\"ParsedCallOptions\"]\n ) {\n return this.caller.call(async () => {\n const fetchResponse = await fetch(this.inferenceAPIUrl, {\n method: \"POST\",\n headers: {\n ...this.constructHeaders(),\n },\n body: JSON.stringify(this.constructBody(prompt, options)),\n });\n if (fetchResponse.status === 200) {\n return fetchResponse.json();\n }\n const errorResponse = await fetchResponse.json();\n throw new Error(\n `Error getting prompt completion from Together AI. ${JSON.stringify(\n errorResponse,\n null,\n 2\n )}`\n );\n });\n }\n\n async _call(\n prompt: string,\n options?: this[\"ParsedCallOptions\"]\n ): Promise<string> {\n const response: TogetherAIInferenceResult = await this.completionWithRetry(\n prompt,\n options\n );\n\n if (!response.output && !response.choices) {\n throw new Error(\n `Unexpected response format from Together AI. The model '${this.model}' may require the ChatTogetherAI class instead of TogetherAI class. ` +\n `Response: ${JSON.stringify(response, null, 2)}`\n );\n }\n\n if (response.output) {\n return response.output.choices?.[0]?.text ?? \"\";\n }\n return response.choices?.[0]?.text ?? \"\";\n }\n\n async *_streamResponseChunks(\n prompt: string,\n options: this[\"ParsedCallOptions\"],\n runManager?: CallbackManagerForLLMRun\n ): AsyncGenerator<GenerationChunk> {\n const fetchResponse = await fetch(this.inferenceAPIUrl, {\n method: \"POST\",\n headers: {\n ...this.constructHeaders(),\n },\n body: JSON.stringify(this.constructBody(prompt, options)),\n });\n\n if (fetchResponse.status !== 200 || !fetchResponse.body) {\n const errorResponse = await fetchResponse.json();\n throw new Error(\n `Error getting prompt completion from Together AI. ${JSON.stringify(\n errorResponse,\n null,\n 2\n )}`\n );\n }\n const stream = convertEventStreamToIterableReadableDataStream(\n fetchResponse.body\n );\n for await (const chunk of stream) {\n if (chunk !== \"[DONE]\") {\n const parsedChunk = JSON.parse(chunk);\n const generationChunk = new GenerationChunk({\n text: parsedChunk.choices[0].text ?? \"\",\n });\n yield generationChunk;\n // oxlint-disable-next-line no-void\n void runManager?.handleLLMNewToken(generationChunk.text ?? \"\");\n }\n }\n }\n}\n"],"mappings":"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"}
|
package/dist/llms.js
CHANGED
|
@@ -43,7 +43,7 @@ var TogetherAI = class extends LLM {
|
|
|
43
43
|
}
|
|
44
44
|
constructor(inputs) {
|
|
45
45
|
super(inputs);
|
|
46
|
-
this._addVersion("@langchain/together-ai", "0.
|
|
46
|
+
this._addVersion("@langchain/together-ai", "0.2.0");
|
|
47
47
|
const apiKey = inputs.apiKey ?? getEnvironmentVariable("TOGETHER_AI_API_KEY");
|
|
48
48
|
if (!apiKey) throw new Error("TOGETHER_AI_API_KEY not found.");
|
|
49
49
|
if (!inputs.model && !inputs.modelName) throw new Error("Model name is required for TogetherAI.");
|
package/dist/llms.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llms.js","names":[],"sources":["../src/llms.ts"],"sourcesContent":["import { CallbackManagerForLLMRun } from \"@langchain/core/callbacks/manager\";\nimport {\n LLM,\n type BaseLLMCallOptions,\n type BaseLLMParams,\n} from \"@langchain/core/language_models/llms\";\nimport { GenerationChunk } from \"@langchain/core/outputs\";\nimport { getEnvironmentVariable } from \"@langchain/core/utils/env\";\nimport { convertEventStreamToIterableReadableDataStream } from \"./utils/event_source_parse.js\";\n\ninterface TogetherAIInferenceResult {\n object: string;\n status: string;\n prompt: Array<string>;\n model: string;\n model_owner: string;\n tags: object;\n num_returns: number;\n args: {\n model: string;\n prompt: string;\n temperature: number;\n top_p: number;\n top_k: number;\n max_tokens: number;\n stop: string[];\n };\n subjobs: unknown[];\n output?: {\n choices: Array<{\n finish_reason: string;\n index: number;\n text: string;\n }>;\n raw_compute_time: number;\n result_type: string;\n };\n choices?: Array<{\n finish_reason: string;\n index: number;\n text: string;\n }>;\n}\n\nexport interface TogetherAIInputs extends BaseLLMParams {\n /**\n * The API key to use for the Together AI API.\n * @default {process.env.TOGETHER_AI_API_KEY}\n */\n apiKey?: string;\n /**\n * The name of the model to query.\n * Alias for `model`.\n */\n modelName?: string;\n /**\n * The name of the model to query.\n */\n model?: string;\n /**\n * A decimal number that determines the degree of randomness in the response.\n * @default {0.7}\n */\n temperature?: number;\n /**\n * Whether or not to stream tokens as they are generated.\n * @default {false}\n */\n streaming?: boolean;\n /**\n * Nucleus sampling threshold.\n * @default {0.7}\n */\n topP?: number;\n /**\n * Limit the number of token candidates considered at each step.\n * @default {50}\n */\n topK?: number;\n /**\n * A number that controls repetition.\n * @default {1}\n */\n repetitionPenalty?: number;\n /**\n * An integer that specifies how many top token log probabilities are included.\n */\n logprobs?: number;\n /**\n * Run an LLM-based safeguard model on top of any model.\n */\n safetyModel?: string;\n /**\n * Limit the number of generated tokens.\n */\n maxTokens?: number;\n /**\n * A list of tokens at which the generation should stop.\n */\n stop?: string[];\n}\n\nexport interface TogetherAICallOptions\n extends\n BaseLLMCallOptions,\n Pick<\n TogetherAIInputs,\n | \"modelName\"\n | \"model\"\n | \"temperature\"\n | \"topP\"\n | \"topK\"\n | \"repetitionPenalty\"\n | \"logprobs\"\n | \"safetyModel\"\n | \"maxTokens\"\n | \"stop\"\n > {}\n\nexport class TogetherAI extends LLM<TogetherAICallOptions> {\n lc_serializable = true;\n\n lc_namespace = [\"langchain\", \"llms\", \"together_ai\"];\n\n static inputs: TogetherAIInputs;\n\n temperature = 0.7;\n\n topP = 0.7;\n\n topK = 50;\n\n modelName: string;\n\n model: string;\n\n streaming = false;\n\n repetitionPenalty = 1;\n\n logprobs?: number;\n\n maxTokens?: number;\n\n safetyModel?: string;\n\n stop?: string[];\n\n private apiKey: string;\n\n private inferenceAPIUrl = \"https://api.together.xyz/inference\";\n\n static lc_name() {\n return \"TogetherAI\";\n }\n\n get lc_secrets(): { [key: string]: string } | undefined {\n return {\n apiKey: \"TOGETHER_AI_API_KEY\",\n };\n }\n\n get lc_aliases(): { [key: string]: string } | undefined {\n return {\n apiKey: \"together_ai_api_key\",\n };\n }\n\n private isChatModel(modelName: string): boolean {\n const chatModelPatterns = [/instruct/i, /chat/i, /vision/i, /turbo/i];\n return chatModelPatterns.some((pattern) => pattern.test(modelName));\n }\n\n constructor(inputs: TogetherAIInputs) {\n super(inputs);\n this._addVersion(\"@langchain/together-ai\", __PKG_VERSION__);\n const apiKey =\n inputs.apiKey ?? getEnvironmentVariable(\"TOGETHER_AI_API_KEY\");\n if (!apiKey) {\n throw new Error(\"TOGETHER_AI_API_KEY not found.\");\n }\n if (!inputs.model && !inputs.modelName) {\n throw new Error(\"Model name is required for TogetherAI.\");\n }\n this.apiKey = apiKey;\n this.temperature = inputs.temperature ?? this.temperature;\n this.topK = inputs.topK ?? this.topK;\n this.topP = inputs.topP ?? this.topP;\n this.modelName = inputs.model ?? inputs.modelName ?? \"\";\n this.model = this.modelName;\n this.streaming = inputs.streaming ?? this.streaming;\n this.repetitionPenalty = inputs.repetitionPenalty ?? this.repetitionPenalty;\n this.logprobs = inputs.logprobs;\n this.safetyModel = inputs.safetyModel;\n this.maxTokens = inputs.maxTokens;\n this.stop = inputs.stop;\n\n if (this.isChatModel(this.model)) {\n console.warn(\n `Warning: Model '${this.model}' appears to be a chat/instruct model. ` +\n \"Consider using ChatTogetherAI from @langchain/together-ai instead.\"\n );\n }\n }\n\n _llmType() {\n return \"together_ai\";\n }\n\n private constructHeaders() {\n return {\n accept: \"application/json\",\n \"content-type\": \"application/json\",\n Authorization: `Bearer ${this.apiKey}`,\n };\n }\n\n private constructBody(prompt: string, options?: this[\"ParsedCallOptions\"]) {\n return {\n model: options?.model ?? options?.modelName ?? this.model,\n prompt,\n temperature: options?.temperature ?? this.temperature,\n top_k: options?.topK ?? this.topK,\n top_p: options?.topP ?? this.topP,\n repetition_penalty: options?.repetitionPenalty ?? this.repetitionPenalty,\n logprobs: options?.logprobs ?? this.logprobs,\n stream_tokens: this.streaming,\n safety_model: options?.safetyModel ?? this.safetyModel,\n max_tokens: options?.maxTokens ?? this.maxTokens,\n stop: options?.stop ?? this.stop,\n };\n }\n\n async completionWithRetry(\n prompt: string,\n options?: this[\"ParsedCallOptions\"]\n ) {\n return this.caller.call(async () => {\n const fetchResponse = await fetch(this.inferenceAPIUrl, {\n method: \"POST\",\n headers: {\n ...this.constructHeaders(),\n },\n body: JSON.stringify(this.constructBody(prompt, options)),\n });\n if (fetchResponse.status === 200) {\n return fetchResponse.json();\n }\n const errorResponse = await fetchResponse.json();\n throw new Error(\n `Error getting prompt completion from Together AI. ${JSON.stringify(\n errorResponse,\n null,\n 2\n )}`\n );\n });\n }\n\n async _call(\n prompt: string,\n options?: this[\"ParsedCallOptions\"]\n ): Promise<string> {\n const response: TogetherAIInferenceResult = await this.completionWithRetry(\n prompt,\n options\n );\n\n if (!response.output && !response.choices) {\n throw new Error(\n `Unexpected response format from Together AI. The model '${this.model}' may require the ChatTogetherAI class instead of TogetherAI class. ` +\n `Response: ${JSON.stringify(response, null, 2)}`\n );\n }\n\n if (response.output) {\n return response.output.choices?.[0]?.text ?? \"\";\n }\n return response.choices?.[0]?.text ?? \"\";\n }\n\n async *_streamResponseChunks(\n prompt: string,\n options: this[\"ParsedCallOptions\"],\n runManager?: CallbackManagerForLLMRun\n ): AsyncGenerator<GenerationChunk> {\n const fetchResponse = await fetch(this.inferenceAPIUrl, {\n method: \"POST\",\n headers: {\n ...this.constructHeaders(),\n },\n body: JSON.stringify(this.constructBody(prompt, options)),\n });\n\n if (fetchResponse.status !== 200 || !fetchResponse.body) {\n const errorResponse = await fetchResponse.json();\n throw new Error(\n `Error getting prompt completion from Together AI. ${JSON.stringify(\n errorResponse,\n null,\n 2\n )}`\n );\n }\n const stream = convertEventStreamToIterableReadableDataStream(\n fetchResponse.body\n );\n for await (const chunk of stream) {\n if (chunk !== \"[DONE]\") {\n const parsedChunk = JSON.parse(chunk);\n const generationChunk = new GenerationChunk({\n text: parsedChunk.choices[0].text ?? \"\",\n });\n yield generationChunk;\n // oxlint-disable-next-line no-void\n void runManager?.handleLLMNewToken(generationChunk.text ?? \"\");\n }\n }\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"llms.js","names":[],"sources":["../src/llms.ts"],"sourcesContent":["import { CallbackManagerForLLMRun } from \"@langchain/core/callbacks/manager\";\nimport {\n LLM,\n type BaseLLMCallOptions,\n type BaseLLMParams,\n} from \"@langchain/core/language_models/llms\";\nimport { GenerationChunk } from \"@langchain/core/outputs\";\nimport { getEnvironmentVariable } from \"@langchain/core/utils/env\";\nimport { convertEventStreamToIterableReadableDataStream } from \"./utils/event_source_parse.js\";\n\ninterface TogetherAIInferenceResult {\n object: string;\n status: string;\n prompt: Array<string>;\n model: string;\n model_owner: string;\n tags: object;\n num_returns: number;\n args: {\n model: string;\n prompt: string;\n temperature: number;\n top_p: number;\n top_k: number;\n max_tokens: number;\n stop: string[];\n };\n subjobs: unknown[];\n output?: {\n choices: Array<{\n finish_reason: string;\n index: number;\n text: string;\n }>;\n raw_compute_time: number;\n result_type: string;\n };\n choices?: Array<{\n finish_reason: string;\n index: number;\n text: string;\n }>;\n}\n\nexport interface TogetherAIInputs extends BaseLLMParams {\n /**\n * The API key to use for the Together AI API.\n * @default {process.env.TOGETHER_AI_API_KEY}\n */\n apiKey?: string;\n /**\n * The name of the model to query.\n * Alias for `model`.\n */\n modelName?: string;\n /**\n * The name of the model to query.\n */\n model?: string;\n /**\n * A decimal number that determines the degree of randomness in the response.\n * @default {0.7}\n */\n temperature?: number;\n /**\n * Whether or not to stream tokens as they are generated.\n * @default {false}\n */\n streaming?: boolean;\n /**\n * Nucleus sampling threshold.\n * @default {0.7}\n */\n topP?: number;\n /**\n * Limit the number of token candidates considered at each step.\n * @default {50}\n */\n topK?: number;\n /**\n * A number that controls repetition.\n * @default {1}\n */\n repetitionPenalty?: number;\n /**\n * An integer that specifies how many top token log probabilities are included.\n */\n logprobs?: number;\n /**\n * Run an LLM-based safeguard model on top of any model.\n */\n safetyModel?: string;\n /**\n * Limit the number of generated tokens.\n */\n maxTokens?: number;\n /**\n * A list of tokens at which the generation should stop.\n */\n stop?: string[];\n}\n\nexport interface TogetherAICallOptions\n extends\n BaseLLMCallOptions,\n Pick<\n TogetherAIInputs,\n | \"modelName\"\n | \"model\"\n | \"temperature\"\n | \"topP\"\n | \"topK\"\n | \"repetitionPenalty\"\n | \"logprobs\"\n | \"safetyModel\"\n | \"maxTokens\"\n | \"stop\"\n > {}\n\nexport class TogetherAI extends LLM<TogetherAICallOptions> {\n lc_serializable = true;\n\n lc_namespace = [\"langchain\", \"llms\", \"together_ai\"];\n\n static inputs: TogetherAIInputs;\n\n temperature = 0.7;\n\n topP = 0.7;\n\n topK = 50;\n\n modelName: string;\n\n model: string;\n\n streaming = false;\n\n repetitionPenalty = 1;\n\n logprobs?: number;\n\n maxTokens?: number;\n\n safetyModel?: string;\n\n stop?: string[];\n\n private apiKey: string;\n\n private inferenceAPIUrl = \"https://api.together.xyz/inference\";\n\n static lc_name() {\n return \"TogetherAI\";\n }\n\n get lc_secrets(): { [key: string]: string } | undefined {\n return {\n apiKey: \"TOGETHER_AI_API_KEY\",\n };\n }\n\n get lc_aliases(): { [key: string]: string } | undefined {\n return {\n apiKey: \"together_ai_api_key\",\n };\n }\n\n private isChatModel(modelName: string): boolean {\n const chatModelPatterns = [/instruct/i, /chat/i, /vision/i, /turbo/i];\n return chatModelPatterns.some((pattern) => pattern.test(modelName));\n }\n\n constructor(inputs: TogetherAIInputs) {\n super(inputs);\n this._addVersion(\"@langchain/together-ai\", __PKG_VERSION__);\n const apiKey =\n inputs.apiKey ?? getEnvironmentVariable(\"TOGETHER_AI_API_KEY\");\n if (!apiKey) {\n throw new Error(\"TOGETHER_AI_API_KEY not found.\");\n }\n if (!inputs.model && !inputs.modelName) {\n throw new Error(\"Model name is required for TogetherAI.\");\n }\n this.apiKey = apiKey;\n this.temperature = inputs.temperature ?? this.temperature;\n this.topK = inputs.topK ?? this.topK;\n this.topP = inputs.topP ?? this.topP;\n this.modelName = inputs.model ?? inputs.modelName ?? \"\";\n this.model = this.modelName;\n this.streaming = inputs.streaming ?? this.streaming;\n this.repetitionPenalty = inputs.repetitionPenalty ?? this.repetitionPenalty;\n this.logprobs = inputs.logprobs;\n this.safetyModel = inputs.safetyModel;\n this.maxTokens = inputs.maxTokens;\n this.stop = inputs.stop;\n\n if (this.isChatModel(this.model)) {\n console.warn(\n `Warning: Model '${this.model}' appears to be a chat/instruct model. ` +\n \"Consider using ChatTogetherAI from @langchain/together-ai instead.\"\n );\n }\n }\n\n _llmType() {\n return \"together_ai\";\n }\n\n private constructHeaders() {\n return {\n accept: \"application/json\",\n \"content-type\": \"application/json\",\n Authorization: `Bearer ${this.apiKey}`,\n };\n }\n\n private constructBody(prompt: string, options?: this[\"ParsedCallOptions\"]) {\n return {\n model: options?.model ?? options?.modelName ?? this.model,\n prompt,\n temperature: options?.temperature ?? this.temperature,\n top_k: options?.topK ?? this.topK,\n top_p: options?.topP ?? this.topP,\n repetition_penalty: options?.repetitionPenalty ?? this.repetitionPenalty,\n logprobs: options?.logprobs ?? this.logprobs,\n stream_tokens: this.streaming,\n safety_model: options?.safetyModel ?? this.safetyModel,\n max_tokens: options?.maxTokens ?? this.maxTokens,\n stop: options?.stop ?? this.stop,\n };\n }\n\n async completionWithRetry(\n prompt: string,\n options?: this[\"ParsedCallOptions\"]\n ) {\n return this.caller.call(async () => {\n const fetchResponse = await fetch(this.inferenceAPIUrl, {\n method: \"POST\",\n headers: {\n ...this.constructHeaders(),\n },\n body: JSON.stringify(this.constructBody(prompt, options)),\n });\n if (fetchResponse.status === 200) {\n return fetchResponse.json();\n }\n const errorResponse = await fetchResponse.json();\n throw new Error(\n `Error getting prompt completion from Together AI. ${JSON.stringify(\n errorResponse,\n null,\n 2\n )}`\n );\n });\n }\n\n async _call(\n prompt: string,\n options?: this[\"ParsedCallOptions\"]\n ): Promise<string> {\n const response: TogetherAIInferenceResult = await this.completionWithRetry(\n prompt,\n options\n );\n\n if (!response.output && !response.choices) {\n throw new Error(\n `Unexpected response format from Together AI. The model '${this.model}' may require the ChatTogetherAI class instead of TogetherAI class. ` +\n `Response: ${JSON.stringify(response, null, 2)}`\n );\n }\n\n if (response.output) {\n return response.output.choices?.[0]?.text ?? \"\";\n }\n return response.choices?.[0]?.text ?? \"\";\n }\n\n async *_streamResponseChunks(\n prompt: string,\n options: this[\"ParsedCallOptions\"],\n runManager?: CallbackManagerForLLMRun\n ): AsyncGenerator<GenerationChunk> {\n const fetchResponse = await fetch(this.inferenceAPIUrl, {\n method: \"POST\",\n headers: {\n ...this.constructHeaders(),\n },\n body: JSON.stringify(this.constructBody(prompt, options)),\n });\n\n if (fetchResponse.status !== 200 || !fetchResponse.body) {\n const errorResponse = await fetchResponse.json();\n throw new Error(\n `Error getting prompt completion from Together AI. ${JSON.stringify(\n errorResponse,\n null,\n 2\n )}`\n );\n }\n const stream = convertEventStreamToIterableReadableDataStream(\n fetchResponse.body\n );\n for await (const chunk of stream) {\n if (chunk !== \"[DONE]\") {\n const parsedChunk = JSON.parse(chunk);\n const generationChunk = new GenerationChunk({\n text: parsedChunk.choices[0].text ?? \"\",\n });\n yield generationChunk;\n // oxlint-disable-next-line no-void\n void runManager?.handleLLMNewToken(generationChunk.text ?? \"\");\n }\n }\n }\n}\n"],"mappings":";;;;;AAuHA,IAAa,aAAb,cAAgC,IAA2B;CACzD,kBAAkB;CAElB,eAAe;EAAC;EAAa;EAAQ;EAAc;CAEnD,OAAO;CAEP,cAAc;CAEd,OAAO;CAEP,OAAO;CAEP;CAEA;CAEA,YAAY;CAEZ,oBAAoB;CAEpB;CAEA;CAEA;CAEA;CAEA;CAEA,kBAA0B;CAE1B,OAAO,UAAU;AACf,SAAO;;CAGT,IAAI,aAAoD;AACtD,SAAO,EACL,QAAQ,uBACT;;CAGH,IAAI,aAAoD;AACtD,SAAO,EACL,QAAQ,uBACT;;CAGH,YAAoB,WAA4B;AAE9C,SAAO;GADoB;GAAa;GAAS;GAAW;GACpC,CAAC,MAAM,YAAY,QAAQ,KAAK,UAAU,CAAC;;CAGrE,YAAY,QAA0B;AACpC,QAAM,OAAO;AACb,OAAK,YAAY,0BAAA,QAA0C;EAC3D,MAAM,SACJ,OAAO,UAAU,uBAAuB,sBAAsB;AAChE,MAAI,CAAC,OACH,OAAM,IAAI,MAAM,iCAAiC;AAEnD,MAAI,CAAC,OAAO,SAAS,CAAC,OAAO,UAC3B,OAAM,IAAI,MAAM,yCAAyC;AAE3D,OAAK,SAAS;AACd,OAAK,cAAc,OAAO,eAAe,KAAK;AAC9C,OAAK,OAAO,OAAO,QAAQ,KAAK;AAChC,OAAK,OAAO,OAAO,QAAQ,KAAK;AAChC,OAAK,YAAY,OAAO,SAAS,OAAO,aAAa;AACrD,OAAK,QAAQ,KAAK;AAClB,OAAK,YAAY,OAAO,aAAa,KAAK;AAC1C,OAAK,oBAAoB,OAAO,qBAAqB,KAAK;AAC1D,OAAK,WAAW,OAAO;AACvB,OAAK,cAAc,OAAO;AAC1B,OAAK,YAAY,OAAO;AACxB,OAAK,OAAO,OAAO;AAEnB,MAAI,KAAK,YAAY,KAAK,MAAM,CAC9B,SAAQ,KACN,mBAAmB,KAAK,MAAM,2GAE/B;;CAIL,WAAW;AACT,SAAO;;CAGT,mBAA2B;AACzB,SAAO;GACL,QAAQ;GACR,gBAAgB;GAChB,eAAe,UAAU,KAAK;GAC/B;;CAGH,cAAsB,QAAgB,SAAqC;AACzE,SAAO;GACL,OAAO,SAAS,SAAS,SAAS,aAAa,KAAK;GACpD;GACA,aAAa,SAAS,eAAe,KAAK;GAC1C,OAAO,SAAS,QAAQ,KAAK;GAC7B,OAAO,SAAS,QAAQ,KAAK;GAC7B,oBAAoB,SAAS,qBAAqB,KAAK;GACvD,UAAU,SAAS,YAAY,KAAK;GACpC,eAAe,KAAK;GACpB,cAAc,SAAS,eAAe,KAAK;GAC3C,YAAY,SAAS,aAAa,KAAK;GACvC,MAAM,SAAS,QAAQ,KAAK;GAC7B;;CAGH,MAAM,oBACJ,QACA,SACA;AACA,SAAO,KAAK,OAAO,KAAK,YAAY;GAClC,MAAM,gBAAgB,MAAM,MAAM,KAAK,iBAAiB;IACtD,QAAQ;IACR,SAAS,EACP,GAAG,KAAK,kBAAkB,EAC3B;IACD,MAAM,KAAK,UAAU,KAAK,cAAc,QAAQ,QAAQ,CAAC;IAC1D,CAAC;AACF,OAAI,cAAc,WAAW,IAC3B,QAAO,cAAc,MAAM;GAE7B,MAAM,gBAAgB,MAAM,cAAc,MAAM;AAChD,SAAM,IAAI,MACR,qDAAqD,KAAK,UACxD,eACA,MACA,EACD,GACF;IACD;;CAGJ,MAAM,MACJ,QACA,SACiB;EACjB,MAAM,WAAsC,MAAM,KAAK,oBACrD,QACA,QACD;AAED,MAAI,CAAC,SAAS,UAAU,CAAC,SAAS,QAChC,OAAM,IAAI,MACR,2DAA2D,KAAK,MAAM,gFACvD,KAAK,UAAU,UAAU,MAAM,EAAE,GACjD;AAGH,MAAI,SAAS,OACX,QAAO,SAAS,OAAO,UAAU,IAAI,QAAQ;AAE/C,SAAO,SAAS,UAAU,IAAI,QAAQ;;CAGxC,OAAO,sBACL,QACA,SACA,YACiC;EACjC,MAAM,gBAAgB,MAAM,MAAM,KAAK,iBAAiB;GACtD,QAAQ;GACR,SAAS,EACP,GAAG,KAAK,kBAAkB,EAC3B;GACD,MAAM,KAAK,UAAU,KAAK,cAAc,QAAQ,QAAQ,CAAC;GAC1D,CAAC;AAEF,MAAI,cAAc,WAAW,OAAO,CAAC,cAAc,MAAM;GACvD,MAAM,gBAAgB,MAAM,cAAc,MAAM;AAChD,SAAM,IAAI,MACR,qDAAqD,KAAK,UACxD,eACA,MACA,EACD,GACF;;EAEH,MAAM,SAAS,+CACb,cAAc,KACf;AACD,aAAW,MAAM,SAAS,OACxB,KAAI,UAAU,UAAU;GAEtB,MAAM,kBAAkB,IAAI,gBAAgB,EAC1C,MAFkB,KAAK,MAAM,MAEZ,CAAC,QAAQ,GAAG,QAAQ,IACtC,CAAC;AACF,SAAM;AAED,eAAY,kBAAkB,gBAAgB,QAAQ,GAAG"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@langchain/together-ai",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Together AI integrations for LangChain.js",
|
|
5
5
|
"author": "LangChain",
|
|
6
6
|
"license": "MIT",
|
|
@@ -14,21 +14,21 @@
|
|
|
14
14
|
},
|
|
15
15
|
"homepage": "https://github.com/langchain-ai/langchainjs/tree/main/libs/providers/langchain-together-ai/",
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@langchain/openai": "1.
|
|
17
|
+
"@langchain/openai": "1.5.0"
|
|
18
18
|
},
|
|
19
19
|
"peerDependencies": {
|
|
20
20
|
"@langchain/core": "^1.0.0"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
23
|
"@tsconfig/recommended": "^1.0.3",
|
|
24
|
-
"@vitest/coverage-v8": "^
|
|
24
|
+
"@vitest/coverage-v8": "^4.1.8",
|
|
25
25
|
"dotenv": "^17.4.0",
|
|
26
26
|
"dpdm": "^3.14.0",
|
|
27
|
-
"typescript": "~
|
|
28
|
-
"vitest": "^4.1.
|
|
27
|
+
"typescript": "~6.0.3",
|
|
28
|
+
"vitest": "^4.1.8",
|
|
29
29
|
"zod": "^3.25.76 || ^4",
|
|
30
|
-
"@langchain/core": "^1.
|
|
31
|
-
"@langchain/openai": "^1.
|
|
30
|
+
"@langchain/core": "^1.2.0",
|
|
31
|
+
"@langchain/openai": "^1.5.0",
|
|
32
32
|
"@langchain/standard-tests": "0.0.23",
|
|
33
33
|
"@langchain/tsconfig": "0.0.1"
|
|
34
34
|
},
|