From 42a06dcd84fa12850a375203d5ba14ed127d99eb Mon Sep 17 00:00:00 2001 From: David Kristek Date: Wed, 10 Jan 2024 15:43:09 +0100 Subject: [PATCH 1/4] chore: migrate to langchain v0.1.11 Refs: #68 --- README.md | 22 +- examples/langchain/llm-chat.ts | 18 +- examples/langchain/llm.ts | 2 +- examples/langchain/prompt-templates.ts | 2 +- package.json | 13 +- src/langchain/llm-chat.ts | 11 +- src/langchain/llm.ts | 8 +- src/langchain/prompt-template.test.ts | 2 +- src/langchain/prompt-template.ts | 2 +- src/tests/e2e/langchain/llm-chat.test.ts | 17 +- src/tests/e2e/langchain/llm.test.ts | 22 +- yarn.lock | 544 +++++++++++++++-------- 12 files changed, 420 insertions(+), 243 deletions(-) diff --git a/README.md b/README.md index da4058c..4f4bd5d 100644 --- a/README.md +++ b/README.md @@ -188,7 +188,7 @@ const model = new GenAIModel({ #### Basic usage ```typescript -const response = await model.call( +const response = await model.invoke( 'What would be a good company name a company that makes colorful socks?', ); @@ -198,7 +198,7 @@ console.log(response); // Fantasy Sockery #### LLM Chain + Prompt Template ```typescript -import { PromptTemplate } from 'langchain/prompts'; +import { PromptTemplate } from '@langchain/core/prompts'; import { LLMChain } from 'langchain/chains'; const prompt = new PromptTemplate({ @@ -230,20 +230,22 @@ const model = new GenAIModel({ }, }); -await model.call('Tell me a joke.', undefined, [ - { - handleLLMNewToken(token: string) { - console.log(token); +await model.invoke('Tell me a joke.', { + callbacks: [ + { + handleLLMNewToken(token) { + console.log(token); + }, }, - }, -]); + ], +}); ``` #### Chat support ```typescript import { GenAIChatModel } from '@ibm-generative-ai/node-sdk/langchain'; -import { SystemMessage, HumanMessage } from 'langchain/schema'; +import { SystemMessage, HumanMessage } from '@langchain/core/messages'; const client = new GenAIChatModel({ modelId: 'eleutherai/gpt-neox-20b', @@ -285,7 +287,7 @@ This can be done via helper classes provided within our SDK. ```typescript import { GenAIPromptTemplate } from '@ibm-generative-ai/node-sdk/langchain'; -import { PromptTemplate } from 'langchain/prompts'; +import { PromptTemplate } from '@langchain/core/prompts'; // Converting the LangChain Prompt Template (f-string) to GenAI Prompt Template' const promptTemplate = GenAIPromptTemplate.fromLangChain( diff --git a/examples/langchain/llm-chat.ts b/examples/langchain/llm-chat.ts index b7b68e3..2972b2a 100644 --- a/examples/langchain/llm-chat.ts +++ b/examples/langchain/llm-chat.ts @@ -1,4 +1,4 @@ -import { HumanMessage } from 'langchain/schema'; +import { HumanMessage } from '@langchain/core/messages'; import { GenAIChatModel } from '../../src/langchain/llm-chat.js'; @@ -30,7 +30,7 @@ const makeClient = (stream?: boolean) => // Basic const chat = makeClient(); - const response = await chat.call([ + const response = await chat.invoke([ new HumanMessage( 'What is a good name for a company that makes colorful socks?', ), @@ -43,11 +43,13 @@ const makeClient = (stream?: boolean) => // Streaming const chat = makeClient(true); - await chat.call([new HumanMessage('Tell me a joke.')], undefined, [ - { - handleLLMNewToken(token) { - console.log(token); + await chat.invoke([new HumanMessage('Tell me a joke.')], { + callbacks: [ + { + handleLLMNewToken(token) { + console.log(token); + }, }, - }, - ]); + ], + }); } diff --git a/examples/langchain/llm.ts b/examples/langchain/llm.ts index cb46ef8..6d18647 100644 --- a/examples/langchain/llm.ts +++ b/examples/langchain/llm.ts @@ -23,7 +23,7 @@ const makeClient = (stream?: boolean) => const prompt = 'What is a good name for a company that makes colorful socks?'; console.info(`Request: ${prompt}`); - const response = await model.call(prompt); + const response = await model.invoke(prompt); console.log(`Response: ${response}`); } diff --git a/examples/langchain/prompt-templates.ts b/examples/langchain/prompt-templates.ts index fab6c90..6c83d14 100644 --- a/examples/langchain/prompt-templates.ts +++ b/examples/langchain/prompt-templates.ts @@ -1,4 +1,4 @@ -import { PromptTemplate } from 'langchain/prompts'; +import { PromptTemplate } from '@langchain/core/prompts'; import { GenAIPromptTemplate } from '../../src/langchain/index.js'; diff --git a/package.json b/package.json index c95709d..e2ab961 100644 --- a/package.json +++ b/package.json @@ -32,6 +32,11 @@ "types": "./dist/langchain/index.d.ts", "import": "./dist/langchain/index.js", "require": "./dist/langchain/index.cjs" + }, + "./@langchain/core": { + "types": "./dist/@langchain/core/index.d.ts", + "import": "./dist/@langchain/core/index.js", + "require": "./dist/@langchain/core/index.cjs" } }, "typesVersions": { @@ -41,6 +46,9 @@ ], "langchain": [ "dist/langchain/index.d.ts" + ], + "@langchain/core": [ + "dist/@langchain/core/index.d.ts" ] } }, @@ -64,11 +72,12 @@ "example:chat": "yarn run example:run examples/chat.ts" }, "peerDependencies": { - "langchain": ">=0.0.155" + "langchain": ">=0.1.11" }, "devDependencies": { "@commitlint/cli": "^18.0.0", "@commitlint/config-conventional": "^18.0.0", + "@langchain/core": "^0.1.11", "@types/lodash": "^4.14.200", "@types/node": "^20.8.8", "@types/promise-retry": "^1.1.5", @@ -83,7 +92,7 @@ "eslint-plugin-import": "^2.29.0", "husky": "^8.0.3", "jest-extended": "^4.0.2", - "langchain": "^0.0.171", + "langchain": "^0.1.1", "lint-staged": "^15.0.2", "lodash": "^4.17.21", "msw": "^1.3.2", diff --git a/src/langchain/llm-chat.ts b/src/langchain/llm-chat.ts index 8073fcb..db368d9 100644 --- a/src/langchain/llm-chat.ts +++ b/src/langchain/llm-chat.ts @@ -1,11 +1,14 @@ -import { BaseChatModel, BaseChatModelParams } from 'langchain/chat_models/base'; +import { + BaseChatModel, + BaseChatModelParams, +} from '@langchain/core/language_models/chat_models'; import { BaseMessage, - ChatResult, MessageType, SystemMessage, -} from 'langchain/schema'; -import { CallbackManagerForLLMRun } from 'langchain/callbacks'; +} from '@langchain/core/messages'; +import { CallbackManagerForLLMRun } from '@langchain/core/callbacks/manager'; +import { ChatResult } from '@langchain/core/outputs'; import { InvalidInputError } from '../errors.js'; import { GenerateOutput } from '../client/types.js'; diff --git a/src/langchain/llm.ts b/src/langchain/llm.ts index a5d585a..7005a1c 100644 --- a/src/langchain/llm.ts +++ b/src/langchain/llm.ts @@ -1,7 +1,7 @@ -import { BaseLLM, BaseLLMParams } from 'langchain/llms/base'; -import { CallbackManagerForLLMRun } from 'langchain/callbacks'; -import type { LLMResult, Generation } from 'langchain/schema'; -import { GenerationChunk } from 'langchain/schema'; +import { BaseLLM, BaseLLMParams } from '@langchain/core/language_models/llms'; +import { CallbackManagerForLLMRun } from '@langchain/core/callbacks/manager'; +import type { LLMResult, Generation } from '@langchain/core/outputs'; +import { GenerationChunk } from '@langchain/core/outputs'; import { Client, Configuration } from '../client/client.js'; import { diff --git a/src/langchain/prompt-template.test.ts b/src/langchain/prompt-template.test.ts index 6ddfa9e..5d520e2 100644 --- a/src/langchain/prompt-template.test.ts +++ b/src/langchain/prompt-template.test.ts @@ -1,4 +1,4 @@ -import { PromptTemplate } from 'langchain/prompts'; +import { PromptTemplate } from '@langchain/core/prompts'; import { InvalidInputError } from '../errors.js'; diff --git a/src/langchain/prompt-template.ts b/src/langchain/prompt-template.ts index 363a9d9..926ad65 100644 --- a/src/langchain/prompt-template.ts +++ b/src/langchain/prompt-template.ts @@ -1,4 +1,4 @@ -import { PromptTemplate as LangChainPromptTemplate } from 'langchain/prompts'; +import { PromptTemplate as LangChainPromptTemplate } from '@langchain/core/prompts'; import type { PromptTemplateOutput as PromptTemplate } from '../client/types.js'; import { InvalidInputError } from '../errors.js'; diff --git a/src/tests/e2e/langchain/llm-chat.test.ts b/src/tests/e2e/langchain/llm-chat.test.ts index 48e74b3..66c98f5 100644 --- a/src/tests/e2e/langchain/llm-chat.test.ts +++ b/src/tests/e2e/langchain/llm-chat.test.ts @@ -1,4 +1,4 @@ -import { HumanMessage, SystemMessage } from 'langchain/schema'; +import { HumanMessage, SystemMessage } from '@langchain/core/messages'; import { GenAIChatModel } from '../../../langchain/index.js'; import { describeIf } from '../../utils.js'; @@ -46,7 +46,7 @@ describeIf(process.env.RUN_LANGCHAIN_CHAT_TESTS === 'true')( test('should handle single question', async () => { const chat = makeClient(); - const response = await chat.call([ + const response = await chat.invoke([ new HumanMessage( 'What is a good name for a company that makes colorful socks?', ), @@ -57,7 +57,7 @@ describeIf(process.env.RUN_LANGCHAIN_CHAT_TESTS === 'true')( test('should handle question with additional hint', async () => { const chat = makeClient(); - const response = await chat.call([ + const response = await chat.invoke([ new SystemMessage(SYSTEM_MESSAGE), new HumanMessage('I love programming.'), ]); @@ -94,14 +94,11 @@ describeIf(process.env.RUN_LANGCHAIN_CHAT_TESTS === 'true')( tokens.push(token); }); - const output = await chat.call( + const output = await chat.invoke( [new HumanMessage('Tell me a joke.')], - undefined, - [ - { - handleLLMNewToken: handleNewToken, - }, - ], + { + callbacks: [{ handleLLMNewToken: handleNewToken }], + }, ); expect(handleNewToken).toHaveBeenCalled(); diff --git a/src/tests/e2e/langchain/llm.test.ts b/src/tests/e2e/langchain/llm.test.ts index f83640e..e5077dc 100644 --- a/src/tests/e2e/langchain/llm.test.ts +++ b/src/tests/e2e/langchain/llm.test.ts @@ -1,4 +1,4 @@ -import { PromptTemplate } from 'langchain/prompts'; +import { PromptTemplate } from '@langchain/core/prompts'; import { LLMChain } from 'langchain/chains'; import { GenAIModel } from '../../../langchain/llm.js'; @@ -39,14 +39,14 @@ describe('Langchain', () => { test.skip('should handle empty modelId', async () => { const client = makeClient(); - const data = await client.call('Who are you?'); + const data = await client.invoke('Who are you?'); expectIsString(data); }, 15_000); test('should return correct response for a single input', async () => { const client = makeClient('google/flan-ul2'); - const data = await client.call('Hello, World'); + const data = await client.invoke('Hello, World'); expectIsString(data); }, 15_000); @@ -97,7 +97,7 @@ describe('Langchain', () => { const model = makeClient('google/flan-ul2'); await expect( - model.call('Hello, World', { timeout: 10 }), + model.invoke('Hello, World', { timeout: 10 }), ).rejects.toThrow(); }); @@ -109,11 +109,13 @@ describe('Langchain', () => { tokens.push(token); }); - const output = await client.call('Tell me a joke.', undefined, [ - { - handleLLMNewToken: handleNewToken, - }, - ]); + const output = await client.invoke('Tell me a joke.', { + callbacks: [ + { + handleLLMNewToken: handleNewToken, + }, + ], + }); expect(handleNewToken).toHaveBeenCalled(); expectIsString(output); @@ -131,7 +133,7 @@ describe('Langchain', () => { }); const chain = new LLMChain({ llm: model, prompt: prompt }); - const { text } = await chain.call({ product: 'colorful socks' }); + const { text } = await chain.invoke({ product: 'colorful socks' }); expectIsString(text); }, 20_000); }); diff --git a/yarn.lock b/yarn.lock index 242b3b6..4a03ae7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -31,9 +31,9 @@ __metadata: languageName: node linkType: hard -"@anthropic-ai/sdk@npm:^0.6.2": - version: 0.6.2 - resolution: "@anthropic-ai/sdk@npm:0.6.2" +"@anthropic-ai/sdk@npm:^0.9.1": + version: 0.9.1 + resolution: "@anthropic-ai/sdk@npm:0.9.1" dependencies: "@types/node": ^18.11.18 "@types/node-fetch": ^2.6.4 @@ -43,7 +43,8 @@ __metadata: form-data-encoder: 1.7.2 formdata-node: ^4.3.2 node-fetch: ^2.6.7 - checksum: a07dd0d42fe83b79bec506399755161cb12d26df756093df7f6189d062d01bd944a4d909d9d13b178567e7778b8966fe6f4b7051b9397cbd035c3fc184289c36 + web-streams-polyfill: ^3.2.1 + checksum: 0ec50abc0ffc694d903d516f4ac110aafa3a588438791851dd2c3d220da49ceaf2723e218b7f1bc13e737fee1561b18ad8c3b4cc4347e8212131f69637216413 languageName: node linkType: hard @@ -676,6 +677,7 @@ __metadata: "@ai-zen/node-fetch-event-source": ^2.1.2 "@commitlint/cli": ^18.0.0 "@commitlint/config-conventional": ^18.0.0 + "@langchain/core": ^0.1.11 "@types/lodash": ^4.14.200 "@types/node": ^20.8.8 "@types/promise-retry": ^1.1.5 @@ -693,7 +695,7 @@ __metadata: form-data: ^4.0.0 husky: ^8.0.3 jest-extended: ^4.0.2 - langchain: ^0.0.171 + langchain: ^0.1.1 lint-staged: ^15.0.2 lodash: ^4.17.21 msw: ^1.3.2 @@ -707,7 +709,7 @@ __metadata: yaml: ^2.3.3 zod: ^3.22.4 peerDependencies: - langchain: ">=0.0.155" + langchain: ">=0.1.11" languageName: unknown linkType: soft @@ -786,6 +788,290 @@ __metadata: languageName: node linkType: hard +"@langchain/community@npm:~0.0.15": + version: 0.0.16 + resolution: "@langchain/community@npm:0.0.16" + dependencies: + "@langchain/core": ~0.1.9 + "@langchain/openai": ~0.0.10 + flat: ^5.0.2 + langsmith: ~0.0.48 + uuid: ^9.0.0 + zod: ^3.22.3 + peerDependencies: + "@aws-crypto/sha256-js": ^5.0.0 + "@aws-sdk/client-bedrock-runtime": ^3.422.0 + "@aws-sdk/client-dynamodb": ^3.310.0 + "@aws-sdk/client-kendra": ^3.352.0 + "@aws-sdk/client-lambda": ^3.310.0 + "@aws-sdk/client-sagemaker-runtime": ^3.310.0 + "@aws-sdk/client-sfn": ^3.310.0 + "@aws-sdk/credential-provider-node": ^3.388.0 + "@clickhouse/client": ^0.2.5 + "@cloudflare/ai": ^1.0.12 + "@datastax/astra-db-ts": 0.1.2 + "@elastic/elasticsearch": ^8.4.0 + "@getmetal/metal-sdk": "*" + "@getzep/zep-js": ^0.9.0 + "@gomomento/sdk": ^1.51.1 + "@gomomento/sdk-core": ^1.51.1 + "@google-ai/generativelanguage": ^0.2.1 + "@gradientai/nodejs-sdk": ^1.2.0 + "@huggingface/inference": ^2.6.4 + "@mozilla/readability": "*" + "@opensearch-project/opensearch": "*" + "@pinecone-database/pinecone": ^1.1.0 + "@planetscale/database": ^1.8.0 + "@qdrant/js-client-rest": ^1.2.0 + "@raycast/api": ^1.55.2 + "@rockset/client": ^0.9.1 + "@smithy/eventstream-codec": ^2.0.5 + "@smithy/protocol-http": ^3.0.6 + "@smithy/signature-v4": ^2.0.10 + "@smithy/util-utf8": ^2.0.0 + "@supabase/postgrest-js": ^1.1.1 + "@supabase/supabase-js": ^2.10.0 + "@tensorflow-models/universal-sentence-encoder": "*" + "@tensorflow/tfjs-converter": "*" + "@tensorflow/tfjs-core": "*" + "@upstash/redis": ^1.20.6 + "@vercel/kv": ^0.2.3 + "@vercel/postgres": ^0.5.0 + "@writerai/writer-sdk": ^0.40.2 + "@xata.io/client": ^0.28.0 + "@xenova/transformers": ^2.5.4 + "@zilliz/milvus2-sdk-node": ">=2.2.7" + cassandra-driver: ^4.7.2 + chromadb: "*" + closevector-common: 0.1.0-alpha.1 + closevector-node: 0.1.0-alpha.10 + closevector-web: 0.1.0-alpha.16 + cohere-ai: ">=6.0.0" + convex: ^1.3.1 + discord.js: ^14.14.1 + faiss-node: ^0.5.1 + firebase-admin: ^11.9.0 + google-auth-library: ^8.9.0 + googleapis: ^126.0.1 + hnswlib-node: ^1.4.2 + html-to-text: ^9.0.5 + ioredis: ^5.3.2 + jsdom: "*" + llmonitor: ^0.5.9 + lodash: ^4.17.21 + lunary: ^0.6.11 + mongodb: ^5.2.0 + mysql2: ^3.3.3 + neo4j-driver: "*" + node-llama-cpp: "*" + pg: ^8.11.0 + pg-copy-streams: ^6.0.5 + pickleparser: ^0.2.1 + portkey-ai: ^0.1.11 + redis: ^4.6.4 + replicate: ^0.18.0 + typeorm: ^0.3.12 + typesense: ^1.5.3 + usearch: ^1.1.1 + vectordb: ^0.1.4 + voy-search: 0.6.2 + weaviate-ts-client: ^1.4.0 + web-auth-library: ^1.0.3 + ws: ^8.14.2 + peerDependenciesMeta: + "@aws-crypto/sha256-js": + optional: true + "@aws-sdk/client-bedrock-runtime": + optional: true + "@aws-sdk/client-dynamodb": + optional: true + "@aws-sdk/client-kendra": + optional: true + "@aws-sdk/client-lambda": + optional: true + "@aws-sdk/client-sagemaker-runtime": + optional: true + "@aws-sdk/client-sfn": + optional: true + "@aws-sdk/credential-provider-node": + optional: true + "@clickhouse/client": + optional: true + "@cloudflare/ai": + optional: true + "@datastax/astra-db-ts": + optional: true + "@elastic/elasticsearch": + optional: true + "@getmetal/metal-sdk": + optional: true + "@getzep/zep-js": + optional: true + "@gomomento/sdk": + optional: true + "@gomomento/sdk-core": + optional: true + "@google-ai/generativelanguage": + optional: true + "@gradientai/nodejs-sdk": + optional: true + "@huggingface/inference": + optional: true + "@mozilla/readability": + optional: true + "@opensearch-project/opensearch": + optional: true + "@pinecone-database/pinecone": + optional: true + "@planetscale/database": + optional: true + "@qdrant/js-client-rest": + optional: true + "@raycast/api": + optional: true + "@rockset/client": + optional: true + "@smithy/eventstream-codec": + optional: true + "@smithy/protocol-http": + optional: true + "@smithy/signature-v4": + optional: true + "@smithy/util-utf8": + optional: true + "@supabase/postgrest-js": + optional: true + "@supabase/supabase-js": + optional: true + "@tensorflow-models/universal-sentence-encoder": + optional: true + "@tensorflow/tfjs-converter": + optional: true + "@tensorflow/tfjs-core": + optional: true + "@upstash/redis": + optional: true + "@vercel/kv": + optional: true + "@vercel/postgres": + optional: true + "@writerai/writer-sdk": + optional: true + "@xata.io/client": + optional: true + "@xenova/transformers": + optional: true + "@zilliz/milvus2-sdk-node": + optional: true + cassandra-driver: + optional: true + chromadb: + optional: true + closevector-common: + optional: true + closevector-node: + optional: true + closevector-web: + optional: true + cohere-ai: + optional: true + convex: + optional: true + discord.js: + optional: true + faiss-node: + optional: true + firebase-admin: + optional: true + google-auth-library: + optional: true + googleapis: + optional: true + hnswlib-node: + optional: true + html-to-text: + optional: true + ioredis: + optional: true + jsdom: + optional: true + llmonitor: + optional: true + lodash: + optional: true + lunary: + optional: true + mongodb: + optional: true + mysql2: + optional: true + neo4j-driver: + optional: true + node-llama-cpp: + optional: true + pg: + optional: true + pg-copy-streams: + optional: true + pickleparser: + optional: true + portkey-ai: + optional: true + redis: + optional: true + replicate: + optional: true + typeorm: + optional: true + typesense: + optional: true + usearch: + optional: true + vectordb: + optional: true + voy-search: + optional: true + weaviate-ts-client: + optional: true + web-auth-library: + optional: true + ws: + optional: true + checksum: f317151242581df90de42baef6249ea02f655fd752f908418fc77695d04732f206c85c72567c32f9d9fc26a721091e284d77a82f68ed087bb60e91eee3c02d5c + languageName: node + linkType: hard + +"@langchain/core@npm:^0.1.11, @langchain/core@npm:~0.1.12, @langchain/core@npm:~0.1.9": + version: 0.1.12 + resolution: "@langchain/core@npm:0.1.12" + dependencies: + ansi-styles: ^5.0.0 + camelcase: 6 + decamelize: 1.2.0 + js-tiktoken: ^1.0.8 + langsmith: ~0.0.48 + ml-distance: ^4.0.0 + p-queue: ^6.6.2 + p-retry: 4 + uuid: ^9.0.0 + zod: ^3.22.3 + checksum: bed15e8047fd1e9316243064886b10e851c6b660cd49d719b3ea0fc3c5060b4e07f853b27ee7574efe139166160744f04dceb31a9d9482599a087e5aaf491105 + languageName: node + linkType: hard + +"@langchain/openai@npm:~0.0.10": + version: 0.0.10 + resolution: "@langchain/openai@npm:0.0.10" + dependencies: + "@langchain/core": ~0.1.9 + js-tiktoken: ^1.0.7 + openai: ^4.19.0 + zod: ^3.22.3 + zod-to-json-schema: 3.20.3 + checksum: 1bee02b30ee99f6f7dd0d83ed471bfa19245ff1621116725623a8fa2b7566288006613497a5df2b2309d77569fc974d6b9ce2c174f00c3edcdac6e73b462bddf + languageName: node + linkType: hard + "@mswjs/cookies@npm:^0.2.2": version: 0.2.2 resolution: "@mswjs/cookies@npm:0.2.2" @@ -2377,7 +2663,7 @@ __metadata: languageName: node linkType: hard -"decamelize@npm:^1.1.0, decamelize@npm:^1.2.0": +"decamelize@npm:1.2.0, decamelize@npm:^1.1.0": version: 1.2.0 resolution: "decamelize@npm:1.2.0" checksum: ad8c51a7e7e0720c70ec2eeb1163b66da03e7616d7b98c9ef43cce2416395e84c1e9548dd94f5f6ffecfee9f8b94251fc57121a8b021f2ff2469b2bae247b8aa @@ -4375,6 +4661,15 @@ __metadata: languageName: node linkType: hard +"js-tiktoken@npm:^1.0.8": + version: 1.0.8 + resolution: "js-tiktoken@npm:1.0.8" + dependencies: + base64-js: ^1.5.1 + checksum: ac6e666f14661b4e744bd60987e35275668863a686413bb35baca2d9a503bc95fcfa907f3c02b8e8abe4a4a70abe622c06cbb72ce3574b3b929d22f9146c3f85 + languageName: node + linkType: hard + "js-tokens@npm:^4.0.0": version: 4.0.0 resolution: "js-tokens@npm:4.0.0" @@ -4473,139 +4768,81 @@ __metadata: languageName: node linkType: hard -"langchain@npm:^0.0.171": - version: 0.0.171 - resolution: "langchain@npm:0.0.171" +"langchain@npm:^0.1.1": + version: 0.1.2 + resolution: "langchain@npm:0.1.2" dependencies: - "@anthropic-ai/sdk": ^0.6.2 - ansi-styles: ^5.0.0 + "@anthropic-ai/sdk": ^0.9.1 + "@langchain/community": ~0.0.15 + "@langchain/core": ~0.1.12 + "@langchain/openai": ~0.0.10 binary-extensions: ^2.2.0 - camelcase: 6 - decamelize: ^1.2.0 expr-eval: ^2.0.2 - flat: ^5.0.2 js-tiktoken: ^1.0.7 js-yaml: ^4.1.0 jsonpointer: ^5.0.1 langchainhub: ~0.0.6 - langsmith: ~0.0.31 + langsmith: ~0.0.48 ml-distance: ^4.0.0 - object-hash: ^3.0.0 - openai: ~4.4.0 openapi-types: ^12.1.3 - p-queue: ^6.6.2 p-retry: 4 uuid: ^9.0.0 yaml: ^2.2.1 zod: ^3.22.3 - zod-to-json-schema: ^3.20.4 + zod-to-json-schema: 3.20.3 peerDependencies: - "@aws-crypto/sha256-js": ^5.0.0 - "@aws-sdk/client-bedrock-runtime": ^3.422.0 - "@aws-sdk/client-dynamodb": ^3.310.0 - "@aws-sdk/client-kendra": ^3.352.0 - "@aws-sdk/client-lambda": ^3.310.0 "@aws-sdk/client-s3": ^3.310.0 "@aws-sdk/client-sagemaker-runtime": ^3.310.0 "@aws-sdk/client-sfn": ^3.310.0 "@aws-sdk/credential-provider-node": ^3.388.0 "@azure/storage-blob": ^12.15.0 - "@clickhouse/client": ^0.0.14 - "@cloudflare/ai": ^1.0.12 - "@elastic/elasticsearch": ^8.4.0 - "@getmetal/metal-sdk": "*" - "@getzep/zep-js": ^0.8.0 - "@gomomento/sdk": ^1.44.1 - "@gomomento/sdk-core": ^1.44.1 - "@gomomento/sdk-web": ^1.44.1 + "@gomomento/sdk": ^1.51.1 + "@gomomento/sdk-core": ^1.51.1 + "@gomomento/sdk-web": ^1.51.1 "@google-ai/generativelanguage": ^0.2.1 "@google-cloud/storage": ^6.10.1 - "@huggingface/inference": ^1.5.1 - "@mozilla/readability": "*" "@notionhq/client": ^2.2.10 - "@opensearch-project/opensearch": "*" "@pinecone-database/pinecone": ^1.1.0 - "@planetscale/database": ^1.8.0 - "@qdrant/js-client-rest": ^1.2.0 - "@raycast/api": ^1.55.2 - "@smithy/eventstream-codec": ^2.0.5 - "@smithy/protocol-http": ^3.0.6 - "@smithy/signature-v4": ^2.0.10 - "@smithy/util-utf8": ^2.0.0 - "@supabase/postgrest-js": ^1.1.1 "@supabase/supabase-js": ^2.10.0 - "@tensorflow-models/universal-sentence-encoder": "*" - "@tensorflow/tfjs-converter": "*" - "@tensorflow/tfjs-core": "*" - "@upstash/redis": ^1.20.6 "@vercel/kv": ^0.2.3 - "@vercel/postgres": ^0.5.0 - "@writerai/writer-sdk": ^0.40.2 - "@xata.io/client": ^0.25.1 - "@xenova/transformers": ^2.5.4 - "@zilliz/milvus2-sdk-node": ">=2.2.7" + "@xata.io/client": ^0.28.0 apify-client: ^2.7.1 - assemblyai: ^2.0.2 + assemblyai: ^4.0.0 axios: "*" - cassandra-driver: ^4.6.4 cheerio: ^1.0.0-rc.12 chromadb: "*" - closevector-common: 0.1.0-alpha.1 - closevector-node: 0.1.0-alpha.10 - closevector-web: 0.1.0-alpha.16 - cohere-ai: ">=6.0.0" + convex: ^1.3.1 d3-dsv: ^2.0.0 epub2: ^3.0.1 - faiss-node: ^0.5.1 fast-xml-parser: ^4.2.7 - firebase-admin: ^11.9.0 google-auth-library: ^8.9.0 googleapis: ^126.0.1 - hnswlib-node: ^1.4.2 + handlebars: ^4.7.8 html-to-text: ^9.0.5 ignore: ^5.2.0 ioredis: ^5.3.2 jsdom: "*" - llmonitor: ^0.5.8 - lodash: ^4.17.21 - mammoth: "*" + mammoth: ^1.6.0 mongodb: ^5.2.0 - mysql2: ^3.3.3 - neo4j-driver: "*" node-llama-cpp: "*" notion-to-md: ^3.1.0 + officeparser: ^4.0.4 pdf-parse: 1.1.1 peggy: ^3.0.2 - pg: ^8.11.0 - pg-copy-streams: ^6.0.5 - pickleparser: ^0.2.1 playwright: ^1.32.1 - portkey-ai: ^0.1.11 puppeteer: ^19.7.2 + pyodide: ^0.24.1 redis: ^4.6.4 - replicate: ^0.18.0 sonix-speech-recognition: ^2.1.1 - srt-parser-2: ^1.2.2 + srt-parser-2: ^1.2.3 typeorm: ^0.3.12 - typesense: ^1.5.3 - usearch: ^1.1.1 vectordb: ^0.1.4 - voy-search: 0.6.2 weaviate-ts-client: ^1.4.0 web-auth-library: ^1.0.3 + ws: ^8.14.2 youtube-transcript: ^1.0.6 youtubei.js: ^5.8.0 peerDependenciesMeta: - "@aws-crypto/sha256-js": - optional: true - "@aws-sdk/client-bedrock-runtime": - optional: true - "@aws-sdk/client-dynamodb": - optional: true - "@aws-sdk/client-kendra": - optional: true - "@aws-sdk/client-lambda": - optional: true "@aws-sdk/client-s3": optional: true "@aws-sdk/client-sagemaker-runtime": @@ -4616,16 +4853,6 @@ __metadata: optional: true "@azure/storage-blob": optional: true - "@clickhouse/client": - optional: true - "@cloudflare/ai": - optional: true - "@elastic/elasticsearch": - optional: true - "@getmetal/metal-sdk": - optional: true - "@getzep/zep-js": - optional: true "@gomomento/sdk": optional: true "@gomomento/sdk-core": @@ -4636,73 +4863,27 @@ __metadata: optional: true "@google-cloud/storage": optional: true - "@huggingface/inference": - optional: true - "@mozilla/readability": - optional: true "@notionhq/client": optional: true - "@opensearch-project/opensearch": - optional: true "@pinecone-database/pinecone": optional: true - "@planetscale/database": - optional: true - "@qdrant/js-client-rest": - optional: true - "@raycast/api": - optional: true - "@smithy/eventstream-codec": - optional: true - "@smithy/protocol-http": - optional: true - "@smithy/signature-v4": - optional: true - "@smithy/util-utf8": - optional: true - "@supabase/postgrest-js": - optional: true "@supabase/supabase-js": optional: true - "@tensorflow-models/universal-sentence-encoder": - optional: true - "@tensorflow/tfjs-converter": - optional: true - "@tensorflow/tfjs-core": - optional: true - "@upstash/redis": - optional: true "@vercel/kv": optional: true - "@vercel/postgres": - optional: true - "@writerai/writer-sdk": - optional: true "@xata.io/client": optional: true - "@xenova/transformers": - optional: true - "@zilliz/milvus2-sdk-node": - optional: true apify-client: optional: true assemblyai: optional: true axios: optional: true - cassandra-driver: - optional: true cheerio: optional: true chromadb: optional: true - closevector-common: - optional: true - closevector-node: - optional: true - closevector-web: - optional: true - cohere-ai: + convex: optional: true d3-dsv: optional: true @@ -4712,13 +4893,11 @@ __metadata: optional: true fast-xml-parser: optional: true - firebase-admin: - optional: true google-auth-library: optional: true googleapis: optional: true - hnswlib-node: + handlebars: optional: true html-to-text: optional: true @@ -4728,41 +4907,27 @@ __metadata: optional: true jsdom: optional: true - llmonitor: - optional: true - lodash: - optional: true mammoth: optional: true mongodb: optional: true - mysql2: - optional: true - neo4j-driver: - optional: true node-llama-cpp: optional: true notion-to-md: optional: true + officeparser: + optional: true pdf-parse: optional: true peggy: optional: true - pg: - optional: true - pg-copy-streams: - optional: true - pickleparser: - optional: true playwright: optional: true - portkey-ai: - optional: true puppeteer: optional: true - redis: + pyodide: optional: true - replicate: + redis: optional: true sonix-speech-recognition: optional: true @@ -4770,23 +4935,19 @@ __metadata: optional: true typeorm: optional: true - typesense: - optional: true - usearch: - optional: true vectordb: optional: true - voy-search: - optional: true weaviate-ts-client: optional: true web-auth-library: optional: true + ws: + optional: true youtube-transcript: optional: true youtubei.js: optional: true - checksum: f10633e26a4381d0820183c3a15d38ae9516e3692c50a04710cc3663c54d7c01c12f5a63c8458163fb5465b4b25cb7f1a1847359d6eff852628b003aed93217f + checksum: dc9639b6ee729ba3b7c0d6d74283f83d1e2ede676bf9b0f57e8fc567c3f5526ed7a9e2cbe5a72a082412e539b7d328f3bf52ab98aec02cdc2f533196c90ef09f languageName: node linkType: hard @@ -4797,9 +4958,9 @@ __metadata: languageName: node linkType: hard -"langsmith@npm:~0.0.31": - version: 0.0.41 - resolution: "langsmith@npm:0.0.41" +"langsmith@npm:~0.0.48": + version: 0.0.57 + resolution: "langsmith@npm:0.0.57" dependencies: "@types/uuid": ^9.0.1 commander: ^10.0.1 @@ -4808,7 +4969,7 @@ __metadata: uuid: ^9.0.0 bin: langsmith: dist/cli/main.cjs - checksum: 1fca3f44d090188d648e8b6f60adfe6d96aeb1ac584c092e60186b7facb7124b1a4e96c7cfacfc6fb1e7f522ffdd394a9c75495f1ba77217126241151406fec4 + checksum: 97a5ce3aa5dbccdc8992c0f598993325967a0967be48d901b08c8c53d6ec2a4064d41beaa9610276f085bd7fd6f518782ae13e003906465468c43c2edd614f78 languageName: node linkType: hard @@ -5633,13 +5794,6 @@ __metadata: languageName: node linkType: hard -"object-hash@npm:^3.0.0": - version: 3.0.0 - resolution: "object-hash@npm:3.0.0" - checksum: 80b4904bb3857c52cc1bfd0b52c0352532ca12ed3b8a6ff06a90cd209dfda1b95cee059a7625eb9da29537027f68ac4619363491eedb2f5d3dddbba97494fd6c - languageName: node - linkType: hard - "object-inspect@npm:^1.12.3, object-inspect@npm:^1.9.0": version: 1.12.3 resolution: "object-inspect@npm:1.12.3" @@ -5727,9 +5881,9 @@ __metadata: languageName: node linkType: hard -"openai@npm:~4.4.0": - version: 4.4.0 - resolution: "openai@npm:4.4.0" +"openai@npm:^4.19.0": + version: 4.24.2 + resolution: "openai@npm:4.24.2" dependencies: "@types/node": ^18.11.18 "@types/node-fetch": ^2.6.4 @@ -5739,9 +5893,10 @@ __metadata: form-data-encoder: 1.7.2 formdata-node: ^4.3.2 node-fetch: ^2.6.7 + web-streams-polyfill: ^3.2.1 bin: openai: bin/cli - checksum: c89b47f3d66c41d8a2080c23192573e8ce985aa3ba099bbe410fac2facf62f665aefad9ea3a7a210e35e650d8568ed1186e12806472d8242fc3dc31e930e6084 + checksum: 95be77f624a682be3bb3c789ef46fd1b85e3d96c7e759010803fc94c596cdb5b4334d96579de6eead6710981bc23cdc98ac201be1d1cb99bb1d32c4ebb998cf5 languageName: node linkType: hard @@ -7617,6 +7772,13 @@ __metadata: languageName: node linkType: hard +"web-streams-polyfill@npm:^3.2.1": + version: 3.3.2 + resolution: "web-streams-polyfill@npm:3.3.2" + checksum: 0292f4113c1bda40d8e8ecebee39eb14cc2e2e560a65a6867980e394537a2645130e2c73f5ef6e641fd3697d2f71720ccf659aebaf69a9d5a773f653a0fdf39d + languageName: node + linkType: hard + "webidl-conversions@npm:^3.0.0": version: 3.0.1 resolution: "webidl-conversions@npm:3.0.1" @@ -7860,12 +8022,12 @@ __metadata: languageName: node linkType: hard -"zod-to-json-schema@npm:^3.20.4": - version: 3.21.0 - resolution: "zod-to-json-schema@npm:3.21.0" +"zod-to-json-schema@npm:3.20.3": + version: 3.20.3 + resolution: "zod-to-json-schema@npm:3.20.3" peerDependencies: - zod: ^3.21.4 - checksum: 957a48a699c701852f441c096f9f1b504a734c86609f2c1835b96ac048a30e2e8c784f7dccce29dc909f23cad564a03e363ee82125e0b5e6d1f4c5a740b77d38 + zod: ^3.20.0 + checksum: 1addf7e6f7d69398404dc90f5c9b76ea44e3f6deeb2fc7c72983a00e15b7340661d7e894b0a4eee3a07334dcdcc79d7064e44de46b4acc37d38ab2f3f7217ec8 languageName: node linkType: hard From 6410cb25b4d6c08dbe6c20c976a9ac7347dec52e Mon Sep 17 00:00:00 2001 From: David Kristek Date: Wed, 10 Jan 2024 19:09:27 +0100 Subject: [PATCH 2/4] fixup! chore: migrate to langchain v0.1.11 Refs: #68 --- examples/generate.ts | 58 --- package.json | 11 +- src/tests/e2e/client.test.ts | 2 + src/tests/e2e/langchain/llm.test.ts | 7 +- yarn.lock | 685 +--------------------------- 5 files changed, 10 insertions(+), 753 deletions(-) diff --git a/examples/generate.ts b/examples/generate.ts index e044f94..43e35ba 100644 --- a/examples/generate.ts +++ b/examples/generate.ts @@ -9,64 +9,6 @@ const client = new Client({ const multipleInputs = loadGenerateInput(); const singleInput = multipleInputs[0]; -{ - // Use with a single input to get a promise - const output = await client.generate(singleInput); - console.log(output); -} - -{ - // Or supply a callback - client.generate(singleInput, (err, output) => { - if (err) console.error(err); - else console.log(output); - }); -} - -{ - // Use with multiple inputs to get a promise - const outputs = await Promise.all(client.generate(multipleInputs)); - console.log(outputs); - - // Or supply a callback which will be called for each output - // Callback is guaranteed to be called in the order of respective inputs - client.generate(multipleInputs, (err, output) => { - if (err) console.error(err); - else console.log(output); - }); - - // The method is optimized for sequential await, order the inputs accordingly - for (const outputPromise of client.generate(multipleInputs)) { - try { - console.log(await outputPromise); - } catch (err) { - console.error(err); - } - } -} - -{ - // Streaming (callback style) - client.generate( - singleInput, - { - stream: true, - }, - (err, output) => { - if (err) { - console.error(err); - } else if (output === null) { - // END of stream - } else { - console.log(output.stop_reason); - console.log(output.generated_token_count); - console.log(output.input_token_count); - console.log(output.generated_text); - } - }, - ); -} - { // Streaming (async iterators) const stream = client.generate(singleInput, { diff --git a/package.json b/package.json index e2ab961..65bd0bb 100644 --- a/package.json +++ b/package.json @@ -32,11 +32,6 @@ "types": "./dist/langchain/index.d.ts", "import": "./dist/langchain/index.js", "require": "./dist/langchain/index.cjs" - }, - "./@langchain/core": { - "types": "./dist/@langchain/core/index.d.ts", - "import": "./dist/@langchain/core/index.js", - "require": "./dist/@langchain/core/index.cjs" } }, "typesVersions": { @@ -46,9 +41,6 @@ ], "langchain": [ "dist/langchain/index.d.ts" - ], - "@langchain/core": [ - "dist/@langchain/core/index.d.ts" ] } }, @@ -72,7 +64,7 @@ "example:chat": "yarn run example:run examples/chat.ts" }, "peerDependencies": { - "langchain": ">=0.1.11" + "@langchain/core": ">=0.1.11" }, "devDependencies": { "@commitlint/cli": "^18.0.0", @@ -92,7 +84,6 @@ "eslint-plugin-import": "^2.29.0", "husky": "^8.0.3", "jest-extended": "^4.0.2", - "langchain": "^0.1.1", "lint-staged": "^15.0.2", "lodash": "^4.17.21", "msw": "^1.3.2", diff --git a/src/tests/e2e/client.test.ts b/src/tests/e2e/client.test.ts index 90d403c..ad06098 100644 --- a/src/tests/e2e/client.test.ts +++ b/src/tests/e2e/client.test.ts @@ -6,6 +6,8 @@ import { import { Client } from '../../client/client.js'; import { RequestCanceledError } from '../../errors.js'; +console.log(process.env.ENDPOINT, process.env.API_KEY, 'process.env.ENDPOINT'); + describe('client', () => { let client: Client; beforeAll(() => { diff --git a/src/tests/e2e/langchain/llm.test.ts b/src/tests/e2e/langchain/llm.test.ts index e5077dc..72a8f08 100644 --- a/src/tests/e2e/langchain/llm.test.ts +++ b/src/tests/e2e/langchain/llm.test.ts @@ -1,5 +1,5 @@ import { PromptTemplate } from '@langchain/core/prompts'; -import { LLMChain } from 'langchain/chains'; +import { StringOutputParser } from '@langchain/core/output_parsers'; import { GenAIModel } from '../../../langchain/llm.js'; @@ -131,9 +131,10 @@ describe('Langchain', () => { template: 'What is a good name for a company that makes {product}?', inputVariables: ['product'], }); + const outputParser = new StringOutputParser(); - const chain = new LLMChain({ llm: model, prompt: prompt }); - const { text } = await chain.invoke({ product: 'colorful socks' }); + const chain = prompt.pipe(model).pipe(outputParser); + const text = await chain.invoke({ product: 'colorful socks' }); expectIsString(text); }, 20_000); }); diff --git a/yarn.lock b/yarn.lock index 4a03ae7..312f561 100644 --- a/yarn.lock +++ b/yarn.lock @@ -31,23 +31,6 @@ __metadata: languageName: node linkType: hard -"@anthropic-ai/sdk@npm:^0.9.1": - version: 0.9.1 - resolution: "@anthropic-ai/sdk@npm:0.9.1" - dependencies: - "@types/node": ^18.11.18 - "@types/node-fetch": ^2.6.4 - abort-controller: ^3.0.0 - agentkeepalive: ^4.2.1 - digest-fetch: ^1.3.0 - form-data-encoder: 1.7.2 - formdata-node: ^4.3.2 - node-fetch: ^2.6.7 - web-streams-polyfill: ^3.2.1 - checksum: 0ec50abc0ffc694d903d516f4ac110aafa3a588438791851dd2c3d220da49ceaf2723e218b7f1bc13e737fee1561b18ad8c3b4cc4347e8212131f69637216413 - languageName: node - linkType: hard - "@babel/code-frame@npm:^7.0.0": version: 7.18.6 resolution: "@babel/code-frame@npm:7.18.6" @@ -695,7 +678,6 @@ __metadata: form-data: ^4.0.0 husky: ^8.0.3 jest-extended: ^4.0.2 - langchain: ^0.1.1 lint-staged: ^15.0.2 lodash: ^4.17.21 msw: ^1.3.2 @@ -709,7 +691,7 @@ __metadata: yaml: ^2.3.3 zod: ^3.22.4 peerDependencies: - langchain: ">=0.1.11" + "@langchain/core": ">=0.1.11" languageName: unknown linkType: soft @@ -788,260 +770,7 @@ __metadata: languageName: node linkType: hard -"@langchain/community@npm:~0.0.15": - version: 0.0.16 - resolution: "@langchain/community@npm:0.0.16" - dependencies: - "@langchain/core": ~0.1.9 - "@langchain/openai": ~0.0.10 - flat: ^5.0.2 - langsmith: ~0.0.48 - uuid: ^9.0.0 - zod: ^3.22.3 - peerDependencies: - "@aws-crypto/sha256-js": ^5.0.0 - "@aws-sdk/client-bedrock-runtime": ^3.422.0 - "@aws-sdk/client-dynamodb": ^3.310.0 - "@aws-sdk/client-kendra": ^3.352.0 - "@aws-sdk/client-lambda": ^3.310.0 - "@aws-sdk/client-sagemaker-runtime": ^3.310.0 - "@aws-sdk/client-sfn": ^3.310.0 - "@aws-sdk/credential-provider-node": ^3.388.0 - "@clickhouse/client": ^0.2.5 - "@cloudflare/ai": ^1.0.12 - "@datastax/astra-db-ts": 0.1.2 - "@elastic/elasticsearch": ^8.4.0 - "@getmetal/metal-sdk": "*" - "@getzep/zep-js": ^0.9.0 - "@gomomento/sdk": ^1.51.1 - "@gomomento/sdk-core": ^1.51.1 - "@google-ai/generativelanguage": ^0.2.1 - "@gradientai/nodejs-sdk": ^1.2.0 - "@huggingface/inference": ^2.6.4 - "@mozilla/readability": "*" - "@opensearch-project/opensearch": "*" - "@pinecone-database/pinecone": ^1.1.0 - "@planetscale/database": ^1.8.0 - "@qdrant/js-client-rest": ^1.2.0 - "@raycast/api": ^1.55.2 - "@rockset/client": ^0.9.1 - "@smithy/eventstream-codec": ^2.0.5 - "@smithy/protocol-http": ^3.0.6 - "@smithy/signature-v4": ^2.0.10 - "@smithy/util-utf8": ^2.0.0 - "@supabase/postgrest-js": ^1.1.1 - "@supabase/supabase-js": ^2.10.0 - "@tensorflow-models/universal-sentence-encoder": "*" - "@tensorflow/tfjs-converter": "*" - "@tensorflow/tfjs-core": "*" - "@upstash/redis": ^1.20.6 - "@vercel/kv": ^0.2.3 - "@vercel/postgres": ^0.5.0 - "@writerai/writer-sdk": ^0.40.2 - "@xata.io/client": ^0.28.0 - "@xenova/transformers": ^2.5.4 - "@zilliz/milvus2-sdk-node": ">=2.2.7" - cassandra-driver: ^4.7.2 - chromadb: "*" - closevector-common: 0.1.0-alpha.1 - closevector-node: 0.1.0-alpha.10 - closevector-web: 0.1.0-alpha.16 - cohere-ai: ">=6.0.0" - convex: ^1.3.1 - discord.js: ^14.14.1 - faiss-node: ^0.5.1 - firebase-admin: ^11.9.0 - google-auth-library: ^8.9.0 - googleapis: ^126.0.1 - hnswlib-node: ^1.4.2 - html-to-text: ^9.0.5 - ioredis: ^5.3.2 - jsdom: "*" - llmonitor: ^0.5.9 - lodash: ^4.17.21 - lunary: ^0.6.11 - mongodb: ^5.2.0 - mysql2: ^3.3.3 - neo4j-driver: "*" - node-llama-cpp: "*" - pg: ^8.11.0 - pg-copy-streams: ^6.0.5 - pickleparser: ^0.2.1 - portkey-ai: ^0.1.11 - redis: ^4.6.4 - replicate: ^0.18.0 - typeorm: ^0.3.12 - typesense: ^1.5.3 - usearch: ^1.1.1 - vectordb: ^0.1.4 - voy-search: 0.6.2 - weaviate-ts-client: ^1.4.0 - web-auth-library: ^1.0.3 - ws: ^8.14.2 - peerDependenciesMeta: - "@aws-crypto/sha256-js": - optional: true - "@aws-sdk/client-bedrock-runtime": - optional: true - "@aws-sdk/client-dynamodb": - optional: true - "@aws-sdk/client-kendra": - optional: true - "@aws-sdk/client-lambda": - optional: true - "@aws-sdk/client-sagemaker-runtime": - optional: true - "@aws-sdk/client-sfn": - optional: true - "@aws-sdk/credential-provider-node": - optional: true - "@clickhouse/client": - optional: true - "@cloudflare/ai": - optional: true - "@datastax/astra-db-ts": - optional: true - "@elastic/elasticsearch": - optional: true - "@getmetal/metal-sdk": - optional: true - "@getzep/zep-js": - optional: true - "@gomomento/sdk": - optional: true - "@gomomento/sdk-core": - optional: true - "@google-ai/generativelanguage": - optional: true - "@gradientai/nodejs-sdk": - optional: true - "@huggingface/inference": - optional: true - "@mozilla/readability": - optional: true - "@opensearch-project/opensearch": - optional: true - "@pinecone-database/pinecone": - optional: true - "@planetscale/database": - optional: true - "@qdrant/js-client-rest": - optional: true - "@raycast/api": - optional: true - "@rockset/client": - optional: true - "@smithy/eventstream-codec": - optional: true - "@smithy/protocol-http": - optional: true - "@smithy/signature-v4": - optional: true - "@smithy/util-utf8": - optional: true - "@supabase/postgrest-js": - optional: true - "@supabase/supabase-js": - optional: true - "@tensorflow-models/universal-sentence-encoder": - optional: true - "@tensorflow/tfjs-converter": - optional: true - "@tensorflow/tfjs-core": - optional: true - "@upstash/redis": - optional: true - "@vercel/kv": - optional: true - "@vercel/postgres": - optional: true - "@writerai/writer-sdk": - optional: true - "@xata.io/client": - optional: true - "@xenova/transformers": - optional: true - "@zilliz/milvus2-sdk-node": - optional: true - cassandra-driver: - optional: true - chromadb: - optional: true - closevector-common: - optional: true - closevector-node: - optional: true - closevector-web: - optional: true - cohere-ai: - optional: true - convex: - optional: true - discord.js: - optional: true - faiss-node: - optional: true - firebase-admin: - optional: true - google-auth-library: - optional: true - googleapis: - optional: true - hnswlib-node: - optional: true - html-to-text: - optional: true - ioredis: - optional: true - jsdom: - optional: true - llmonitor: - optional: true - lodash: - optional: true - lunary: - optional: true - mongodb: - optional: true - mysql2: - optional: true - neo4j-driver: - optional: true - node-llama-cpp: - optional: true - pg: - optional: true - pg-copy-streams: - optional: true - pickleparser: - optional: true - portkey-ai: - optional: true - redis: - optional: true - replicate: - optional: true - typeorm: - optional: true - typesense: - optional: true - usearch: - optional: true - vectordb: - optional: true - voy-search: - optional: true - weaviate-ts-client: - optional: true - web-auth-library: - optional: true - ws: - optional: true - checksum: f317151242581df90de42baef6249ea02f655fd752f908418fc77695d04732f206c85c72567c32f9d9fc26a721091e284d77a82f68ed087bb60e91eee3c02d5c - languageName: node - linkType: hard - -"@langchain/core@npm:^0.1.11, @langchain/core@npm:~0.1.12, @langchain/core@npm:~0.1.9": +"@langchain/core@npm:^0.1.11": version: 0.1.12 resolution: "@langchain/core@npm:0.1.12" dependencies: @@ -1059,19 +788,6 @@ __metadata: languageName: node linkType: hard -"@langchain/openai@npm:~0.0.10": - version: 0.0.10 - resolution: "@langchain/openai@npm:0.0.10" - dependencies: - "@langchain/core": ~0.1.9 - js-tiktoken: ^1.0.7 - openai: ^4.19.0 - zod: ^3.22.3 - zod-to-json-schema: 3.20.3 - checksum: 1bee02b30ee99f6f7dd0d83ed471bfa19245ff1621116725623a8fa2b7566288006613497a5df2b2309d77569fc974d6b9ce2c174f00c3edcdac6e73b462bddf - languageName: node - linkType: hard - "@mswjs/cookies@npm:^0.2.2": version: 0.2.2 resolution: "@mswjs/cookies@npm:0.2.2" @@ -1359,16 +1075,6 @@ __metadata: languageName: node linkType: hard -"@types/node-fetch@npm:^2.6.4": - version: 2.6.4 - resolution: "@types/node-fetch@npm:2.6.4" - dependencies: - "@types/node": "*" - form-data: ^3.0.0 - checksum: f3e1d881bb42269e676ecaf49f0e096ab345e22823a2b2d071d60619414817fe02df48a31a8d05adb23054028a2a65521bdb3906ceb763ab6d3339c8d8775058 - languageName: node - linkType: hard - "@types/node@npm:*": version: 18.15.5 resolution: "@types/node@npm:18.15.5" @@ -1376,13 +1082,6 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:^18.11.18": - version: 18.18.0 - resolution: "@types/node@npm:18.18.0" - checksum: 61bcffa28eb713e7a4c66fd369df603369c3f834a783faeced95fe3e78903faa25f1a704d49e054f41d71b7915eeb066d10a37cc699421fcf5dd267f96ad5808 - languageName: node - linkType: hard - "@types/node@npm:^18.11.9": version: 18.18.6 resolution: "@types/node@npm:18.18.6" @@ -1682,15 +1381,6 @@ __metadata: languageName: node linkType: hard -"abort-controller@npm:^3.0.0": - version: 3.0.0 - resolution: "abort-controller@npm:3.0.0" - dependencies: - event-target-shim: ^5.0.0 - checksum: 170bdba9b47b7e65906a28c8ce4f38a7a369d78e2271706f020849c1bfe0ee2067d4261df8bbb66eb84f79208fd5b710df759d64191db58cfba7ce8ef9c54b75 - languageName: node - linkType: hard - "acorn-jsx@npm:^5.3.2": version: 5.3.2 resolution: "acorn-jsx@npm:5.3.2" @@ -2039,13 +1729,6 @@ __metadata: languageName: node linkType: hard -"base-64@npm:^0.1.0": - version: 0.1.0 - resolution: "base-64@npm:0.1.0" - checksum: 5a42938f82372ab5392cbacc85a5a78115cbbd9dbef9f7540fa47d78763a3a8bd7d598475f0d92341f66285afd377509851a9bb5c67bbecb89686e9255d5b3eb - languageName: node - linkType: hard - "base64-js@npm:^1.3.1, base64-js@npm:^1.5.1": version: 1.5.1 resolution: "base64-js@npm:1.5.1" @@ -2053,7 +1736,7 @@ __metadata: languageName: node linkType: hard -"binary-extensions@npm:^2.0.0, binary-extensions@npm:^2.2.0": +"binary-extensions@npm:^2.0.0": version: 2.2.0 resolution: "binary-extensions@npm:2.2.0" checksum: ccd267956c58d2315f5d3ea6757cf09863c5fc703e50fbeb13a7dc849b812ef76e3cf9ca8f35a0c48498776a7478d7b4a0418e1e2b8cb9cb9731f2922aaad7f8 @@ -2292,13 +1975,6 @@ __metadata: languageName: node linkType: hard -"charenc@npm:0.0.2": - version: 0.0.2 - resolution: "charenc@npm:0.0.2" - checksum: 81dcadbe57e861d527faf6dd3855dc857395a1c4d6781f4847288ab23cffb7b3ee80d57c15bba7252ffe3e5e8019db767757ee7975663ad2ca0939bb8fcaf2e5 - languageName: node - linkType: hard - "check-error@npm:^1.0.3": version: 1.0.3 resolution: "check-error@npm:1.0.3" @@ -2618,13 +2294,6 @@ __metadata: languageName: node linkType: hard -"crypt@npm:0.0.2": - version: 0.0.2 - resolution: "crypt@npm:0.0.2" - checksum: baf4c7bbe05df656ec230018af8cf7dbe8c14b36b98726939cef008d473f6fe7a4fad906cfea4062c93af516f1550a3f43ceb4d6615329612c6511378ed9fe34 - languageName: node - linkType: hard - "dargs@npm:^7.0.0": version: 7.0.0 resolution: "dargs@npm:7.0.0" @@ -2763,16 +2432,6 @@ __metadata: languageName: node linkType: hard -"digest-fetch@npm:^1.3.0": - version: 1.3.0 - resolution: "digest-fetch@npm:1.3.0" - dependencies: - base-64: ^0.1.0 - md5: ^2.3.0 - checksum: 8ebdb4b9ef02b1ac0da532d25c7d08388f2552813dfadabfe7c4630e944bb4a48093b997fc926440a10e1ccf4912f2ce9adcf2d6687b0518dab8480e08f22f9d - languageName: node - linkType: hard - "dir-glob@npm:^3.0.1": version: 3.0.1 resolution: "dir-glob@npm:3.0.1" @@ -3335,13 +2994,6 @@ __metadata: languageName: node linkType: hard -"event-target-shim@npm:^5.0.0": - version: 5.0.1 - resolution: "event-target-shim@npm:5.0.1" - checksum: 1ffe3bb22a6d51bdeb6bf6f7cf97d2ff4a74b017ad12284cc9e6a279e727dc30a5de6bb613e5596ff4dc3e517841339ad09a7eec44266eccb1aa201a30448166 - languageName: node - linkType: hard - "eventemitter3@npm:^4.0.4": version: 4.0.7 resolution: "eventemitter3@npm:4.0.7" @@ -3397,13 +3049,6 @@ __metadata: languageName: node linkType: hard -"expr-eval@npm:^2.0.2": - version: 2.0.2 - resolution: "expr-eval@npm:2.0.2" - checksum: 01862f09b50b17b45a6268b1153280afede99e1b51752a323661f7f4010eaed34cd6c682bf439b7f8a92df6aa82f326f0ce0aa20964d175feee97377fe53921d - languageName: node - linkType: hard - "external-editor@npm:^3.0.3": version: 3.1.0 resolution: "external-editor@npm:3.1.0" @@ -3535,15 +3180,6 @@ __metadata: languageName: node linkType: hard -"flat@npm:^5.0.2": - version: 5.0.2 - resolution: "flat@npm:5.0.2" - bin: - flat: cli.js - checksum: 12a1536ac746db74881316a181499a78ef953632ddd28050b7a3a43c62ef5462e3357c8c29d76072bb635f147f7a9a1f0c02efef6b4be28f8db62ceb3d5c7f5d - languageName: node - linkType: hard - "flatted@npm:^3.1.0": version: 3.2.7 resolution: "flatted@npm:3.2.7" @@ -3580,24 +3216,6 @@ __metadata: languageName: node linkType: hard -"form-data-encoder@npm:1.7.2": - version: 1.7.2 - resolution: "form-data-encoder@npm:1.7.2" - checksum: aeebd87a1cb009e13cbb5e4e4008e6202ed5f6551eb6d9582ba8a062005178907b90f4887899d3c993de879159b6c0c940af8196725b428b4248cec5af3acf5f - languageName: node - linkType: hard - -"form-data@npm:^3.0.0": - version: 3.0.1 - resolution: "form-data@npm:3.0.1" - dependencies: - asynckit: ^0.4.0 - combined-stream: ^1.0.8 - mime-types: ^2.1.12 - checksum: b019e8d35c8afc14a2bd8a7a92fa4f525a4726b6d5a9740e8d2623c30e308fbb58dc8469f90415a856698933c8479b01646a9dff33c87cc4e76d72aedbbf860d - languageName: node - linkType: hard - "form-data@npm:^4.0.0": version: 4.0.0 resolution: "form-data@npm:4.0.0" @@ -3609,16 +3227,6 @@ __metadata: languageName: node linkType: hard -"formdata-node@npm:^4.3.2": - version: 4.4.1 - resolution: "formdata-node@npm:4.4.1" - dependencies: - node-domexception: 1.0.0 - web-streams-polyfill: 4.0.0-beta.3 - checksum: d91d4f667cfed74827fc281594102c0dabddd03c9f8b426fc97123eedbf73f5060ee43205d89284d6854e2fc5827e030cd352ef68b93beda8decc2d72128c576 - languageName: node - linkType: hard - "fs-extra@npm:^11.0.0": version: 11.1.1 resolution: "fs-extra@npm:11.1.1" @@ -4310,13 +3918,6 @@ __metadata: languageName: node linkType: hard -"is-buffer@npm:~1.1.6": - version: 1.1.6 - resolution: "is-buffer@npm:1.1.6" - checksum: 4a186d995d8bbf9153b4bd9ff9fd04ae75068fe695d29025d25e592d9488911eeece84eefbd8fa41b8ddcc0711058a71d4c466dcf6f1f6e1d83830052d8ca707 - languageName: node - linkType: hard - "is-callable@npm:^1.1.3, is-callable@npm:^1.1.4, is-callable@npm:^1.2.7": version: 1.2.7 resolution: "is-callable@npm:1.2.7" @@ -4652,15 +4253,6 @@ __metadata: languageName: node linkType: hard -"js-tiktoken@npm:^1.0.7": - version: 1.0.7 - resolution: "js-tiktoken@npm:1.0.7" - dependencies: - base64-js: ^1.5.1 - checksum: 4856641fed816e618c8a693db0a5478995c598914dec2ba9ccd69719a88a14756d5aec2eed0fba7a4999e603b277ba9a58fd7b2af98e8b638b39b436bbfb7060 - languageName: node - linkType: hard - "js-tiktoken@npm:^1.0.8": version: 1.0.8 resolution: "js-tiktoken@npm:1.0.8" @@ -4754,13 +4346,6 @@ __metadata: languageName: node linkType: hard -"jsonpointer@npm:^5.0.1": - version: 5.0.1 - resolution: "jsonpointer@npm:5.0.1" - checksum: 0b40f712900ad0c846681ea2db23b6684b9d5eedf55807b4708c656f5894b63507d0e28ae10aa1bddbea551241035afe62b6df0800fc94c2e2806a7f3adecd7c - languageName: node - linkType: hard - "kind-of@npm:^6.0.3": version: 6.0.3 resolution: "kind-of@npm:6.0.3" @@ -4768,196 +4353,6 @@ __metadata: languageName: node linkType: hard -"langchain@npm:^0.1.1": - version: 0.1.2 - resolution: "langchain@npm:0.1.2" - dependencies: - "@anthropic-ai/sdk": ^0.9.1 - "@langchain/community": ~0.0.15 - "@langchain/core": ~0.1.12 - "@langchain/openai": ~0.0.10 - binary-extensions: ^2.2.0 - expr-eval: ^2.0.2 - js-tiktoken: ^1.0.7 - js-yaml: ^4.1.0 - jsonpointer: ^5.0.1 - langchainhub: ~0.0.6 - langsmith: ~0.0.48 - ml-distance: ^4.0.0 - openapi-types: ^12.1.3 - p-retry: 4 - uuid: ^9.0.0 - yaml: ^2.2.1 - zod: ^3.22.3 - zod-to-json-schema: 3.20.3 - peerDependencies: - "@aws-sdk/client-s3": ^3.310.0 - "@aws-sdk/client-sagemaker-runtime": ^3.310.0 - "@aws-sdk/client-sfn": ^3.310.0 - "@aws-sdk/credential-provider-node": ^3.388.0 - "@azure/storage-blob": ^12.15.0 - "@gomomento/sdk": ^1.51.1 - "@gomomento/sdk-core": ^1.51.1 - "@gomomento/sdk-web": ^1.51.1 - "@google-ai/generativelanguage": ^0.2.1 - "@google-cloud/storage": ^6.10.1 - "@notionhq/client": ^2.2.10 - "@pinecone-database/pinecone": ^1.1.0 - "@supabase/supabase-js": ^2.10.0 - "@vercel/kv": ^0.2.3 - "@xata.io/client": ^0.28.0 - apify-client: ^2.7.1 - assemblyai: ^4.0.0 - axios: "*" - cheerio: ^1.0.0-rc.12 - chromadb: "*" - convex: ^1.3.1 - d3-dsv: ^2.0.0 - epub2: ^3.0.1 - fast-xml-parser: ^4.2.7 - google-auth-library: ^8.9.0 - googleapis: ^126.0.1 - handlebars: ^4.7.8 - html-to-text: ^9.0.5 - ignore: ^5.2.0 - ioredis: ^5.3.2 - jsdom: "*" - mammoth: ^1.6.0 - mongodb: ^5.2.0 - node-llama-cpp: "*" - notion-to-md: ^3.1.0 - officeparser: ^4.0.4 - pdf-parse: 1.1.1 - peggy: ^3.0.2 - playwright: ^1.32.1 - puppeteer: ^19.7.2 - pyodide: ^0.24.1 - redis: ^4.6.4 - sonix-speech-recognition: ^2.1.1 - srt-parser-2: ^1.2.3 - typeorm: ^0.3.12 - vectordb: ^0.1.4 - weaviate-ts-client: ^1.4.0 - web-auth-library: ^1.0.3 - ws: ^8.14.2 - youtube-transcript: ^1.0.6 - youtubei.js: ^5.8.0 - peerDependenciesMeta: - "@aws-sdk/client-s3": - optional: true - "@aws-sdk/client-sagemaker-runtime": - optional: true - "@aws-sdk/client-sfn": - optional: true - "@aws-sdk/credential-provider-node": - optional: true - "@azure/storage-blob": - optional: true - "@gomomento/sdk": - optional: true - "@gomomento/sdk-core": - optional: true - "@gomomento/sdk-web": - optional: true - "@google-ai/generativelanguage": - optional: true - "@google-cloud/storage": - optional: true - "@notionhq/client": - optional: true - "@pinecone-database/pinecone": - optional: true - "@supabase/supabase-js": - optional: true - "@vercel/kv": - optional: true - "@xata.io/client": - optional: true - apify-client: - optional: true - assemblyai: - optional: true - axios: - optional: true - cheerio: - optional: true - chromadb: - optional: true - convex: - optional: true - d3-dsv: - optional: true - epub2: - optional: true - faiss-node: - optional: true - fast-xml-parser: - optional: true - google-auth-library: - optional: true - googleapis: - optional: true - handlebars: - optional: true - html-to-text: - optional: true - ignore: - optional: true - ioredis: - optional: true - jsdom: - optional: true - mammoth: - optional: true - mongodb: - optional: true - node-llama-cpp: - optional: true - notion-to-md: - optional: true - officeparser: - optional: true - pdf-parse: - optional: true - peggy: - optional: true - playwright: - optional: true - puppeteer: - optional: true - pyodide: - optional: true - redis: - optional: true - sonix-speech-recognition: - optional: true - srt-parser-2: - optional: true - typeorm: - optional: true - vectordb: - optional: true - weaviate-ts-client: - optional: true - web-auth-library: - optional: true - ws: - optional: true - youtube-transcript: - optional: true - youtubei.js: - optional: true - checksum: dc9639b6ee729ba3b7c0d6d74283f83d1e2ede676bf9b0f57e8fc567c3f5526ed7a9e2cbe5a72a082412e539b7d328f3bf52ab98aec02cdc2f533196c90ef09f - languageName: node - linkType: hard - -"langchainhub@npm:~0.0.6": - version: 0.0.6 - resolution: "langchainhub@npm:0.0.6" - checksum: f771e5375b7ae9cc6fc59d5e2b1fd35c29e5759f4595617e3a235142bc2ca12c4135aa1631d85ee4e25c89968696242dd6380f6b90e87ffbc9006efc3cdc53c4 - languageName: node - linkType: hard - "langsmith@npm:~0.0.48": version: 0.0.57 resolution: "langsmith@npm:0.0.57" @@ -5267,17 +4662,6 @@ __metadata: languageName: node linkType: hard -"md5@npm:^2.3.0": - version: 2.3.0 - resolution: "md5@npm:2.3.0" - dependencies: - charenc: 0.0.2 - crypt: 0.0.2 - is-buffer: ~1.1.6 - checksum: a63cacf4018dc9dee08c36e6f924a64ced735b37826116c905717c41cebeb41a522f7a526ba6ad578f9c80f02cb365033ccd67fe186ffbcc1a1faeb75daa9b6e - languageName: node - linkType: hard - "meow@npm:^12.0.1": version: 12.1.1 resolution: "meow@npm:12.1.1" @@ -5646,13 +5030,6 @@ __metadata: languageName: node linkType: hard -"node-domexception@npm:1.0.0": - version: 1.0.0 - resolution: "node-domexception@npm:1.0.0" - checksum: ee1d37dd2a4eb26a8a92cd6b64dfc29caec72bff5e1ed9aba80c294f57a31ba4895a60fd48347cf17dd6e766da0ae87d75657dfd1f384ebfa60462c2283f5c7f - languageName: node - linkType: hard - "node-fetch@npm:^2.6.12": version: 2.7.0 resolution: "node-fetch@npm:2.7.0" @@ -5881,32 +5258,6 @@ __metadata: languageName: node linkType: hard -"openai@npm:^4.19.0": - version: 4.24.2 - resolution: "openai@npm:4.24.2" - dependencies: - "@types/node": ^18.11.18 - "@types/node-fetch": ^2.6.4 - abort-controller: ^3.0.0 - agentkeepalive: ^4.2.1 - digest-fetch: ^1.3.0 - form-data-encoder: 1.7.2 - formdata-node: ^4.3.2 - node-fetch: ^2.6.7 - web-streams-polyfill: ^3.2.1 - bin: - openai: bin/cli - checksum: 95be77f624a682be3bb3c789ef46fd1b85e3d96c7e759010803fc94c596cdb5b4334d96579de6eead6710981bc23cdc98ac201be1d1cb99bb1d32c4ebb998cf5 - languageName: node - linkType: hard - -"openapi-types@npm:^12.1.3": - version: 12.1.3 - resolution: "openapi-types@npm:12.1.3" - checksum: 7fa5547f87a58d2aa0eba6e91d396f42d7d31bc3ae140e61b5d60b47d2fd068b48776f42407d5a8da7280cf31195aa128c2fc285e8bb871d1105edee5647a0bb - languageName: node - linkType: hard - "optionator@npm:^0.9.3": version: 0.9.3 resolution: "optionator@npm:0.9.3" @@ -7765,20 +7116,6 @@ __metadata: languageName: node linkType: hard -"web-streams-polyfill@npm:4.0.0-beta.3": - version: 4.0.0-beta.3 - resolution: "web-streams-polyfill@npm:4.0.0-beta.3" - checksum: dfec1fbf52b9140e4183a941e380487b6c3d5d3838dd1259be81506c1c9f2abfcf5aeb670aeeecfd9dff4271a6d8fef931b193c7bedfb42542a3b05ff36c0d16 - languageName: node - linkType: hard - -"web-streams-polyfill@npm:^3.2.1": - version: 3.3.2 - resolution: "web-streams-polyfill@npm:3.3.2" - checksum: 0292f4113c1bda40d8e8ecebee39eb14cc2e2e560a65a6867980e394537a2645130e2c73f5ef6e641fd3697d2f71720ccf659aebaf69a9d5a773f653a0fdf39d - languageName: node - linkType: hard - "webidl-conversions@npm:^3.0.0": version: 3.0.1 resolution: "webidl-conversions@npm:3.0.1" @@ -7935,13 +7272,6 @@ __metadata: languageName: node linkType: hard -"yaml@npm:^2.2.1": - version: 2.2.1 - resolution: "yaml@npm:2.2.1" - checksum: 84f68cbe462d5da4e7ded4a8bded949ffa912bc264472e5a684c3d45b22d8f73a3019963a32164023bdf3d83cfb6f5b58ff7b2b10ef5b717c630f40bd6369a23 - languageName: node - linkType: hard - "yargs-parser@npm:^20.2.2, yargs-parser@npm:^20.2.3, yargs-parser@npm:^20.2.9": version: 20.2.9 resolution: "yargs-parser@npm:20.2.9" @@ -8022,15 +7352,6 @@ __metadata: languageName: node linkType: hard -"zod-to-json-schema@npm:3.20.3": - version: 3.20.3 - resolution: "zod-to-json-schema@npm:3.20.3" - peerDependencies: - zod: ^3.20.0 - checksum: 1addf7e6f7d69398404dc90f5c9b76ea44e3f6deeb2fc7c72983a00e15b7340661d7e894b0a4eee3a07334dcdcc79d7064e44de46b4acc37d38ab2f3f7217ec8 - languageName: node - linkType: hard - "zod@npm:^3.22.3, zod@npm:^3.22.4": version: 3.22.4 resolution: "zod@npm:3.22.4" From d3ba7d59a5966c7abd9406efeb9a76aa66d88f97 Mon Sep 17 00:00:00 2001 From: David Kristek Date: Wed, 10 Jan 2024 19:18:25 +0100 Subject: [PATCH 3/4] fixup! fixup! chore: migrate to langchain v0.1.11 Refs: #68 --- examples/generate.ts | 58 ++++++++++++++++++++++++++++++++++++ src/tests/e2e/client.test.ts | 2 -- 2 files changed, 58 insertions(+), 2 deletions(-) diff --git a/examples/generate.ts b/examples/generate.ts index 43e35ba..e044f94 100644 --- a/examples/generate.ts +++ b/examples/generate.ts @@ -9,6 +9,64 @@ const client = new Client({ const multipleInputs = loadGenerateInput(); const singleInput = multipleInputs[0]; +{ + // Use with a single input to get a promise + const output = await client.generate(singleInput); + console.log(output); +} + +{ + // Or supply a callback + client.generate(singleInput, (err, output) => { + if (err) console.error(err); + else console.log(output); + }); +} + +{ + // Use with multiple inputs to get a promise + const outputs = await Promise.all(client.generate(multipleInputs)); + console.log(outputs); + + // Or supply a callback which will be called for each output + // Callback is guaranteed to be called in the order of respective inputs + client.generate(multipleInputs, (err, output) => { + if (err) console.error(err); + else console.log(output); + }); + + // The method is optimized for sequential await, order the inputs accordingly + for (const outputPromise of client.generate(multipleInputs)) { + try { + console.log(await outputPromise); + } catch (err) { + console.error(err); + } + } +} + +{ + // Streaming (callback style) + client.generate( + singleInput, + { + stream: true, + }, + (err, output) => { + if (err) { + console.error(err); + } else if (output === null) { + // END of stream + } else { + console.log(output.stop_reason); + console.log(output.generated_token_count); + console.log(output.input_token_count); + console.log(output.generated_text); + } + }, + ); +} + { // Streaming (async iterators) const stream = client.generate(singleInput, { diff --git a/src/tests/e2e/client.test.ts b/src/tests/e2e/client.test.ts index ad06098..90d403c 100644 --- a/src/tests/e2e/client.test.ts +++ b/src/tests/e2e/client.test.ts @@ -6,8 +6,6 @@ import { import { Client } from '../../client/client.js'; import { RequestCanceledError } from '../../errors.js'; -console.log(process.env.ENDPOINT, process.env.API_KEY, 'process.env.ENDPOINT'); - describe('client', () => { let client: Client; beforeAll(() => { From 9576ac188e8ff196ee366dc9a3df4a7d60cb9adb Mon Sep 17 00:00:00 2001 From: David Kristek Date: Wed, 10 Jan 2024 19:55:19 +0100 Subject: [PATCH 4/4] fixup! fixup! fixup! chore: migrate to langchain v0.1.11 Refs: #68 --- src/tests/e2e/client.test.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/tests/e2e/client.test.ts b/src/tests/e2e/client.test.ts index 90d403c..e76854f 100644 --- a/src/tests/e2e/client.test.ts +++ b/src/tests/e2e/client.test.ts @@ -106,9 +106,9 @@ describe('client', () => { test('should correctly process moderation chunks during streaming', async () => { const stream = makeValidStream({ + min_new_tokens: 1, + max_new_tokens: 5, moderations: { - min_new_tokens: 1, - max_new_tokens: 5, hap: { input: true, threshold: 0.01,