UNPKG

@beparallel/langchain-ts

Version:

Extracts Langchain prompts and generates TypeScript types.

37 lines (31 loc) 920 B
import { ChatPromptTemplate } from '@langchain/core/prompts'; import console from 'console'; import * as hub from 'langchain/hub'; import { Client } from 'langsmith'; export async function extractPrompts({ langchainApiKey, langchainTag, }: { langchainApiKey: string; langchainTag: string; }): Promise<ChatPromptTemplate[]> { const client = new Client({ apiKey: langchainApiKey }); const prompts = await client.listPrompts({ isPublic: false, isArchived: false, sortField: 'updated_at', }); const result: ChatPromptTemplate[] = []; for await (const prompt of prompts) { console.debug(`Generating prompt ${prompt.repo_handle}`); try { const chatPromptTemplate = await hub.pull<ChatPromptTemplate>( `${prompt.repo_handle}:${langchainTag}`, ); result.push(chatPromptTemplate); } catch (error) { console.error(error); } } return result; }