```typescript import { CheerioWebBaseLoader } from 'langchain/document_loaders/web/cheerio'; import

import { CheerioWebBaseLoader } from 'langchain/document_loaders/web/cheerio';
import { MemoryVectorStore } from 'langchain/vectorstores/memory';
import { OpenAI } from 'langchain/llms/openai';
import { OpenAIEmbeddings } from 'langchain/embeddings/openai';
import { RetrievalQAChain } from 'langchain/chains';

export default {
        async fetch(request, env, ctx) {
                const loader = new CheerioWebBaseLoader('https://en.wikipedia.org/wiki/Brooklyn');
                const docs = await loader.loadAndSplit();
                //console.log(docs);

                const store = await MemoryVectorStore.fromDocuments(docs, new OpenAIEmbeddings({ openAIApiKey: env.OPENAI_API_KEY }));

                const model = new OpenAI({ openAIApiKey: env.OPENAI_API_KEY });
                const chain = RetrievalQAChain.fromLLM(model, store.asRetriever());

                const { searchParams } = new URL(request.url);
                const question = searchParams.get('question') ?? 'What is this article about? Can you give me 3 facts about it?';

                const res = await chain.call({
                        query: question,
                });
                console.log(res.text);

                return new Response(res.text);
        },
};


how to make this work with cf embeddings instead of openai? any blog or guide?

i got this code from https://blog.cloudflare.com/langchain-and-cloudflare
Was this page helpful?