56 lines
1.7 KiB
JavaScript
56 lines
1.7 KiB
JavaScript
const { ChatOpenAI } = require("@langchain/openai");
|
|
const { awaitAllCallbacks } = require("@langchain/core/callbacks/promises");
|
|
const { Calculator } = require("@langchain/community/tools/calculator");
|
|
const { AgentExecutor, createToolCallingAgent } = require("langchain/agents");
|
|
const { ChatPromptTemplate } = require("@langchain/core/prompts");
|
|
const { JLINCTracer } = require("../src/tracer.js");
|
|
|
|
async function main() {
|
|
const tracer = new JLINCTracer({
|
|
dataStoreApiUrl: "http://localhost:9090",
|
|
dataStoreApiKey: process.env.JLINC_DATA_STORE_API_KEY,
|
|
archiveApiUrl: "http://localhost:9090",
|
|
archiveApiKey: process.env.JLINC_ARCHIVE_API_KEY,
|
|
agreementId: "00000000-0000-0000-0000-000000000000",
|
|
systemPrefix: "TracerTest",
|
|
debug: true,
|
|
});
|
|
|
|
const llm = new ChatOpenAI({
|
|
openAIApiKey: "n/a",
|
|
configuration: {
|
|
baseURL: "http://localhost:1234/v1",
|
|
},
|
|
modelName: "meta-llama-3.1-8b-instruct",
|
|
});
|
|
|
|
const calculator = new Calculator();
|
|
const tools = [calculator];
|
|
|
|
const prompt = ChatPromptTemplate.fromMessages([
|
|
["system", "You are a helpful assistant"],
|
|
["placeholder", "{chat_history}"],
|
|
["human", "{input}"],
|
|
["placeholder", "{agent_scratchpad}"],
|
|
]);
|
|
|
|
const agent = createToolCallingAgent({ llm, tools, prompt });
|
|
|
|
const agentExecutor = new AgentExecutor({
|
|
agent,
|
|
tools,
|
|
});
|
|
|
|
try {
|
|
const r = await agentExecutor.invoke({ input: "Add 1 + 1" }, {callbacks: [tracer]});
|
|
console.log(`\nResult`)
|
|
console.log(`---------------------------------------------`)
|
|
console.log(r)
|
|
} catch (err) {
|
|
console.error("Error calling LLM:", err);
|
|
} finally {
|
|
await awaitAllCallbacks();
|
|
}
|
|
}
|
|
|
|
main() |