Skip to content

A mininal "LLM-Shell" application built with C# for the sake of learning

License

Notifications You must be signed in to change notification settings

Ping-Hung/TerminalGPT

Repository files navigation

TerminalGPT

  • Console app built with C# for the sake of learning.
  • Current objective is to build a Mininal "LLM-Shell" desktop application.

a minimal data-flow diagram Data Flow Diagram

Learnt Concepts

  1. Vibe Coding:
  • How to leverage the power of chatGPT to learn a new programming language and build a usable app.
  1. OO Programming:
  • How to model the entire app as interactions between entities with distinct roles.
  1. C# Features:
  1. Adaptor Pattern:
  • Essentially "I have an existing class with desired functionalities, let me do something around it so this class fits into the entire system".
  • Typcially use interface (or abstract base class in C++) as wrapper around a service(dependency), so the service could easily interact with the rest of the program through the client.
  • The client is implemented based on the contract defined in the interface/abstract base class.
  • Adaptors implement the client and wraps around the service.

Project Status/Demo

demo picture

Resources

Csharp Tutorial

  1. https://learn.microsoft.com/en-us/dotnet/csharp/tour-of-csharp/tutorials/

OpenAI API

  1. https://platform.openai.com/docs/api-reference/authentication?utm_source=chatgpt.com
  2. https://platform.openai.com/docs/guides/streaming-responses
  3. https://github.com/openai/openai-dotnet/tree/main
  4. https://platform.openai.com/docs/guides/text

Design Notes

  • context, the user-assistant chat history list, is passed into the LLM as a serialized JSON list.

About

A mininal "LLM-Shell" application built with C# for the sake of learning

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages