UNPKG

@beparallel/langchain-ts

Version:

Extracts Langchain prompts and generates TypeScript types.

39 lines (33 loc) 1.06 kB
import { ChatPromptTemplate } from '@langchain/core/prompts' import { pull } from 'langchain/hub' import { Client } from 'langsmith' export async function extractPrompts({ langchainApiKey, langchainTag, promptName, }: { langchainApiKey: string langchainTag: string promptName?: 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) { if (promptName && !prompt.repo_handle.includes(promptName)) { continue } console.debug(`Generating prompt ${prompt.repo_handle}`) try { const chatPromptTemplate = await pull<ChatPromptTemplate>(`${prompt.repo_handle}:${langchainTag}`) result.push(chatPromptTemplate) } catch (error) { console.error(error) } } return result }