Files
wehub-resource-sync 770d92cb1f
Lint / lint (push) Has been cancelled
Build Docs / Deploy Docs (push) Has been cancelled
Windows CI / Windows (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:23:58 +08:00

75 lines
2.3 KiB
TypeScript

import { OpenAI } from "langchain/llms/openai";
import { BufferWindowMemory } from "langchain/memory";
import { LLMChain } from "langchain/chains";
import { PromptTemplate } from "langchain/prompts";
import {TextLoader } from "langchain/document_loaders/fs/text";
import { loadQAStuffChain } from "langchain/chains";
const color = {
PURPLE : '\x1b[95m',
CYAN : '\x1b[96m',
DARKCYAN : '\x1b[36m',
BLUE : '\x1b[94m',
GREEN : '\x1b[92m',
YELLOW : '\x1b[93m',
RED : '\x1b[91m',
BOLD : '\x1b[1m',
UNDERLINE : '\x1b[4m',
END : '\x1b[0m'
};
function print(str: string) {
process.stdout.write(str);
}
const newline = () => {
print('\n');
}
const chat = new OpenAI( {
openAIApiKey: "empty",
temperature: 0
}, {
basePath: 'http://127.0.0.1:8000/v1'
});
// Conversational LLMChain example
const memory = new BufferWindowMemory({ memoryKey: "history", k: 1 });
const template = `The following is a friendly conversation between a human and an AI. The AI is talkative and provides lots of specific details from its context. If the AI does not know the answer to a question, it truthfully says it does not know.
Current conversation:
{history}
Human: {human_input}
AI:`;
const prompt = PromptTemplate.fromTemplate(template);
let chain = new LLMChain({ llm: chat, prompt, memory });
let input = "Write a poem about Pittsburgh.";
print(color.BOLD + input + "..." + color.END);
newline();
let res = await chain.call({ human_input: input });
newline();
print(color.GREEN + res.text + color.END);
newline();
input = "What does it mean?";
print(color.BOLD + input + "..." + color.END);
newline();
res = await chain.call({ human_input: input });
newline();
print(color.GREEN + res.text + color.END);
newline();
// Question and answer stuff chain example with text loader
const loader = new TextLoader('../resources/linux.txt');
const documents = await loader.load();
const schain = loadQAStuffChain(chat);
const query = "When was Linux released?";
newline(); newline();
print(color.BOLD + "Query: " + color.END + color.BLUE + query + color.END);
newline();
const result = await schain.call({ input_documents: documents, question: query});
print(color.BOLD + "Response: " + color.END + color.GREEN + result.text + color.END);