I am trying to call workers ai using langchain in a worker, I have the code setup but get
Cloudflare LLM call failed with status code 404
Cloudflare LLM call failed with status code 404
. Maybe my environment variables are not setup right? But I cannot tell because console.log's apparently do not show when running wrangler dev... Am I missing something obvious here?
import type { D1Database } from '@cloudflare/workers-types';import { Hono } from 'hono';import { ConversationChain } from 'langchain/chains';import { CloudflareWorkersAI } from 'langchain/llms/cloudflare_workersai';import { BufferMemory } from 'langchain/memory';import { CloudflareD1MessageHistory } from 'langchain/stores/message/cloudflare_d1';type Bindings = { DB: D1Database; CLOUDFLARE_API_TOKEN: string; CLOUDFLARE_ACCOUNT_ID: string;};const app = new Hono<{ Bindings: Bindings }>();app.get('/', async (c) => { try { const input = c.req.query('input'); console.log(input); if (!input) { return c.text('Please provide input query parameter', 400); } console.error(c.env); const memory = new BufferMemory({ chatHistory: new CloudflareD1MessageHistory({ tableName: 'stored_message', sessionId: 'example', database: c.env.DB, }), }); const model = new CloudflareWorkersAI({ // model: '@cf/mistral/mistral-7b-instruct-v0.1', streaming: false, cloudflareAccountId: c.env.CLOUDFLARE_ACCOUNT_ID, cloudflareApiToken: c.env.CLOUDFLARE_API_TOKEN, }); const chain = new ConversationChain({ llm: model, memory }); const res = await chain.call({ input }); return c.text(res.response); } catch (e) { console.error(e); return c.text(e.message, 500); }});export default app;
import type { D1Database } from '@cloudflare/workers-types';import { Hono } from 'hono';import { ConversationChain } from 'langchain/chains';import { CloudflareWorkersAI } from 'langchain/llms/cloudflare_workersai';import { BufferMemory } from 'langchain/memory';import { CloudflareD1MessageHistory } from 'langchain/stores/message/cloudflare_d1';type Bindings = { DB: D1Database; CLOUDFLARE_API_TOKEN: string; CLOUDFLARE_ACCOUNT_ID: string;};const app = new Hono<{ Bindings: Bindings }>();app.get('/', async (c) => { try { const input = c.req.query('input'); console.log(input); if (!input) { return c.text('Please provide input query parameter', 400); } console.error(c.env); const memory = new BufferMemory({ chatHistory: new CloudflareD1MessageHistory({ tableName: 'stored_message', sessionId: 'example', database: c.env.DB, }), }); const model = new CloudflareWorkersAI({ // model: '@cf/mistral/mistral-7b-instruct-v0.1', streaming: false, cloudflareAccountId: c.env.CLOUDFLARE_ACCOUNT_ID, cloudflareApiToken: c.env.CLOUDFLARE_API_TOKEN, }); const chain = new ConversationChain({ llm: model, memory }); const res = await chain.call({ input }); return c.text(res.response); } catch (e) { console.error(e); return c.text(e.message, 500); }});export default app;