Skip to content

Latest commit

History

46 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Hypermind

Welcome to Hypermind the .NET way of building minds.

Connect foundation models to enable emergent capabilities - with ease

Community

Installation:

Add reference to HypermindLib Set the Enivormentvariable OPENAI_API_KEY to your OpenAI API Key or provide Key directly in Code Example Code:

News

  • Recursive Summarizer - simply summarize a complete book
  • Caching for LLMs implemented

Examples

usingHypermindLib;//Ask a LLM a question that it directly without help awnsers.varaskLLm=newAskLLM(newOpenAI());varsite=askLLm.Ask("What is the Url of the Wikipediasite about the element gold?");Console.WriteLine(site);//get text of an WebsiteWebrequestwebrequest=newWebrequest();vartext=webrequest.Get(site);Console.WriteLine(text);//split a long text prety smartlyvarsplits=Textsplitter.SmartStringSplit(text,4000);//summarize a noveltext=webrequest.Get("https://www.gutenberg.org/cache/epub/69773/pg69773-images.html");varrecursivSummerizer=newRecursivSummarizer(newOpenAI(maxNewTokens:500));varsummery=recursivSummerizer.Summerize(text);Console.WriteLine(summery);//ask questions about a textvaranswerer=newAnswerQuestionAboutText(newOpenAI());varresult=answerer.AskQuestion("the apple was red and the car yellow","what color was the apple?");Console.WriteLine(result);

See the RecursiveSummerizer as inspiration for new chains. Its simple, like lego.

publicclassRecursivSummarizer:Chain{PrompTemplateSummerizerPromp=newPrompTemplate(@"""Summerize the following text between >>> and <<< >>>{text}<<<Summery:""");ModelWithPrompSumerizer;publicRecursivSummarizer(LLMllm){Sumerizer=newModelWithPromp(llm,SummerizerPromp);}/// <summary>/// Simplified Call to Summerizer/// </summary>/// <param name="text">Text we want summerized</param>/// <returns></returns>publicstringSummerize(stringtext){varsplits=Textsplitter.SmartStringSplit(text,8000);if(splits.Length==1){varinput=newChainInput("text",text);varoutput=Sumerizer.Process(input);returnoutput.Result[0].Value;}else{varconcatsummeries=splits.Select(s =>Summerize(s)).Aggregate("",(current,next)=>{returncurrent+" "+next;});varfinamsummary=Summerize(concatsummeries);returnfinamsummary;}}publicoverrideChainOutputProcess(ChainInputinput){returnSumerizer.Process(input);}}
´´´

About

connect foundation models to enable emergent capabilities - Also ChatGPT clone in C# ;D

Resources

Stars

28 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages