prismAId

For Developers

Contributing

We value community contributions that help improve prismAId. Whether you’re fixing bugs, adding features, or improving documentation, your input is welcome:

For detailed guidelines on contributing, please refer to our CONTRIBUTING.md and CODE_OF_CONDUCT.md.

Software Stack and Approach

prismAId is built using the Go programming language, known for its simplicity and efficiency in handling concurrent operations. We prioritize staying up-to-date with the latest stable releases of Go to leverage the newest features and improvements.

Development Environment Setup

To facilitate the development and testing of prismAId, templates for configuring VSCodium (or Visual Studio Code) are provided. These templates include predefined settings and extensions that enhance the development experience, ensuring consistency across different setups.

Using the Templates

  1. Clone the Repository: Start by cloning the prismAId repository to your local machine.
  2. Open with VSCodium/VSCode: Open the directory within VSCodium or VSCode.
  3. Copy the .json Files: Copy them in a newly created vscodedirectory on the root of the project.
  4. Remove the .template extension: Change the file names and follow the instructions within the files.
  5. Ignore the Files in GIT: Add the files to your local .gitignore to avoid sharing secrets and other private information.

Architecture

Our architecture is designed to be robust yet simple, ensuring that the tool remains accessible to both technical and non-technical users:

Development Philosophy

Software Dependencies

command-line-arguments
  ├ flag
  ├ fmt
  ├ io
  ├ log
  ├ os
  ├ path/filepath
  ├ prismAId/config
    ├ os
    └ github.com/BurntSushi/toml
  ├ prismAId/cost
    ├ bufio
    ├ fmt
    ├ log
    ├ os
    ├ strings
    ├ github.com/pkoukk/tiktoken-go
    ├ github.com/sashabaranov/go-openai
    ├ github.com/shopspring/decimal
    └ prismAId/config
  ├ prismAId/llm
    ├ context
    ├ encoding/json
    ├ fmt
    ├ log
    ├ github.com/sashabaranov/go-openai
    ├ prismAId/config
    └ prismAId/cost
  ├ prismAId/prompt
    ├ encoding/json
    ├ fmt
    ├ log
    ├ os
    ├ path/filepath
    ├ sort
    ├ strings
    └ prismAId/config
  └ prismAId/results
    ├ bytes
    ├ encoding/csv
    ├ encoding/json
    ├ log
    ├ os
    └ strings