Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/is-leeroy-jenkins/bocifus
A windows (wpf) application for interacting with the OpenAI API written in C#.
https://github.com/is-leeroy-jenkins/bocifus
chatgpt-api chatgpt3 data-science openai openai-api wpf-ui
Last synced: 12 days ago
JSON representation
A windows (wpf) application for interacting with the OpenAI API written in C#.
- Host: GitHub
- URL: https://github.com/is-leeroy-jenkins/bocifus
- Owner: is-leeroy-jenkins
- License: mit
- Created: 2024-10-07T01:16:19.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2024-11-22T18:21:20.000Z (2 months ago)
- Last Synced: 2024-11-22T19:26:40.789Z (2 months ago)
- Topics: chatgpt-api, chatgpt3, data-science, openai, openai-api, wpf-ui
- Language: C#
- Homepage:
- Size: 41 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
![](https://github.com/is-leeroy-jenkins/Bocifus/blob/main/Resources/Assets/DemoImages/Bocifus.png)
## ![](https://github.com/is-leeroy-jenkins/Bocifus/blob/main/Resources/Assets/GitHubImages/features.png) Features
- A simple application for interacting with the OpenAI API written in C#
- An open source tool for connecting and interacting through a single, windows interface!
- Connect and interact with ChatGPT through a single user interface.
- Asynchronous ChatGPT Interactio**: Efficiently sent prompts to the OpenAI Completions and Assistants API.
- Data Collection**: Collects data such as PDFs, CSVs, DOCX, XLS, PPTX, TXT, Images, Videos, JSON, DBSQL, XML, HTML, PHP, JS, Archives, and Miscellaneous files.
- Database Integration**: Organizes scraped URLs into SQLite databases based on their file types.
- Modern UI Design**: User-friendly WPF interface with rich text logging.## ![](https://github.com/is-leeroy-jenkins/Bocifus/blob/main/Resources/Assets/GitHubImages/web.png) Basics
1. Run the application.
2. Click the button next to the Configuration combo box and set the API key.
3. Type your question or comment in the text box and press Ctrl + Enter or click the Send button to submit.
4. The response from the API will appear in the Assistant text box.
5. Continue the dialogue by sending further messages if necessary.## ![](https://github.com/is-leeroy-jenkins/Bocifus/blob/main/Resources/Assets/GitHubImages/system_requirements.png) Requirements
- You need [VC++ 2019 Runtime](https://aka.ms/vs/17/release/vc_redist.x64.exe) 32-bit and 64-bit versions
- You will need .NET 6.![](https://github.com/is-leeroy-jenkins/Bocifus/blob/main/Resources/Assets/DemoImages/OpenAIOnWPF.gif)
## ![](https://github.com/is-leeroy-jenkins/Bocifus/blob/main/Resources/Assets/GitHubImages/tools.png) Build
- [x] Visual Studio 2022
- [x] Built on Windows Presentation Framework
- [x] Written in C#
- [x] Windows 10/11## ![](https://github.com/is-leeroy-jenkins/Bocifus/blob/main/Resources/Assets/GitHubImages/documentation.png) Documentation
- [User Guide](https://github.com/is-leeroy-jenkins/Bocifus/tree/master/Resources/Github/Users.md) - how to use Bocifus.
- [Compilation Guide](https://github.com/is-leeroy-jenkins/Bocifus/tree/master/Resources/Github/Compilation.md) - instructions on how to compile Bocifus.
- [Configuration Guide](https://github.com/is-leeroy-jenkins/Bocifus/tree/master/Resources/Github/Configuration.md) - information for the Bocifus configuration file.
- [Distribution Guide](https://github.com/is-leeroy-jenkins/Bocifus/tree/master/Resources/Github/Distribution.md) - distributing Bocifus.## ![](https://github.com/is-leeroy-jenkins/Bocifus/blob/main/Resources/Assets/GitHubImages/csharp.png) Code
- Bocifus supports 'AnyCPU' as well as x86/x64 specific builds
- [Controls](https://github.com/is-leeroy-jenkins/Bocifus/tree/master/UI/Controls) - controls associated main ui layer and related functionality.
- [Enumerations](https://github.com/is-leeroy-jenkins/Bocifus/tree/master/Enumerations) - various enumerations.
- [Extensions](https://github.com/is-leeroy-jenkins/Bocifus/tree/master/Extensions)- useful extension methods by type.
- [Data](https://github.com/is-leeroy-jenkins/Bocifus/tree/master/Data) - tcp/udp/websockets classses
- [Resources](https://github.com/is-leeroy-jenkins/Bocifus/tree/master/Resources) - statistic classes
- [Managers](https://github.com/is-leeroy-jenkins/Bocifus/tree/master/Managers) - other tools used and available.
- [Models](https://github.com/is-leeroy-jenkins/Bocifus/tree/master/Model) - models used in network analysis
- [Services](https://github.com/is-leeroy-jenkins/Bocifus/tree/master/Services) - ai services classes used in Bocifus.
- [Static](https://github.com/is-leeroy-jenkins/Bocifus/tree/master/Static) - static types used by Bocifus.
- [Windows](https://github.com/is-leeroy-jenkins/Bocifus/tree/master/UI/Windows) - window classes## ![](https://github.com/is-leeroy-jenkins/Bocifus/blob/main/Resources/Assets/GitHubImages/openai.png) OpenAI
- [Federal Appropriations](https://github.com/is-leeroy-jenkins/Bocifus/blob/main/Resources/Github/Appropriations.md) - vectorized dataset of federal appropriations available for fine-tuning machine learning models
- [Federal Regulations](https://github.com/is-leeroy-jenkins/Bocifus/blob/main/Resources/Github/Regulations.md) - vectorized dataset of federal finance regulations available for fine-tuning machine learning models## ![](https://github.com/is-leeroy-jenkins/Bocifus/blob/main/Resources/Assets/GitHubImages/system_requirements.png) Dependencies
Here are the key dependencies of this project:
- [**Betalgo.OpenAI** ](https://github.com/betalgo/openai)
- [**ModernWpf**](https://github.com/Kinnara/ModernWpf)
- [**FluentWPF**](https://github.com/sourcechord/FluentWPF)## ![](https://github.com/is-leeroy-jenkins/Bocifus/blob/main/Resources/Assets/GitHubImages/openai.png) Examples
![](https://github.com/is-leeroy-jenkins/Bocifus/blob/main/Resources/Assets/DemoImages/OpenAIOnWPF.gif)
## ![](https://github.com/is-leeroy-jenkins/Bocifus/blob/main/Resources/Assets/GitHubImages/administrative-tools.png) Configurations
OpenAI or AzureOpenAI APIs are available.## ![](https://github.com/is-leeroy-jenkins/Bocifus/blob/main/Resources/Assets/GitHubImages/github.png) History
https://github.com/is-leeroy-jenkins/Bocifus/blob/main/Resources/Assets/DemoImages/57471763/d7bcb773-9832-44cc-8a97-a3a13e6f8c18## ![](https://github.com/is-leeroy-jenkins/Bocifus/blob/main/Resources/Assets/GitHubImages/epa.png) Prompts
https://github.com/is-leeroy-jenkins/Bocifus/blob/main/Resources/Assets/DemoImages/57471763/1057896a-3f72-495c-9db7-68223e5d1136## ![](https://github.com/is-leeroy-jenkins/Bocifus/blob/main/Resources/Assets/GitHubImages/icons8-layers-30.png) Extras
- For people whose native language is not English.
- English is said to be the most accurate. Use this if you want to interact with the AI in English.
- Requires DeepLearning or Google's translation API.## 📦 Download
Pre-built and binaries (setup, portable and archive) are available on the with install instructions (e.g. silent install).
## ![](https://github.com/is-leeroy-jenkins/Bocifus/blob/main/Resources/Assets/GitHubImages/tools.png) Build
- [x] VisualStudio 2022
- [x] Based on .NET8 and WPF```bash
$ git clone https://github.com/is-leeroy-jenkins/Bocifus.git
$ cd Bocifus
```
Run `Bocifus.sln`You can build the application like any other .NET / WPF application on Windows.
1. Make sure that the following requirements are installed:
- [.NET 8.x - SDK](https://dotnet.microsoft.com/download/dotnet/8.0)
- Visual Studio 2022 with `.NET desktop development` and `Universal Windows Platform development`2. Clone the repository with all submodules:
```PowerShell
# Clone the repository
git clone https://github.com/is-leeroy-jenkins/Bocifus# Navigate to the repository
cd Bocifus# Clone the submodules
git submodule update --init
```3. Open the project file `.\Source\Bocifus.sln` with Visual Studio or JetBrains Rider to build (or debug)
the solution.> **ALTERNATIVE**
>
> With the following commands you can directly build the binaries from the command line:
>
> ```PowerShell
> dotnet restore .\Source\Bocifus.sln
>
> dotnet build .\Source\Bocifus.sln --configuration Release --no-restore
> ```## 🙏 Acknowledgements
Bocifus uses the following projects and libraries. Please consider supporting them as well (e.g., by starring their repositories):
| Library | Description |
| ----------------------------------------------------------------------------- | ---------------------------------------------------------------------- |
| [CefSharp.WPF.Core](https://github.com/cefsharp) | .NET (WPF/Windows Forms) bindings for the Chromium Embedded Framework |
| [Epplus](https://github.com/EPPlusSoftware/EPPlus) | EPPlus-Excel spreadsheets for .NET |
| [Google.Api.CustomSearchAPI.v1](https://developers.google.com/custom-search) | Google APIs Client Library for working with Customsearch v1 |
| [LinqStatistics](https://www.nuget.org/packages/LinqStatistics) | Linq extensions to calculate basic statistics. |
| [System.Data.SqlServerCe](https://www.nuget.org/packages/System.Data.SqlServerCe_unofficial) | Unofficial package of System.Data.SqlServerCe.dll if you need it as dependency. |
| [Microsoft.Office.Interop.Outlook 15.0.4797.1004](https://www.nuget.org/packages/Microsoft.Office.Interop.Outlook) | This an assembly you can use for Outlook 2013/2016/2019 COM interop, generated and signed by Microsoft. This is entirely unsupported and there is no license since it is a repackaging of Office assemblies. |
| [ModernWpfUI 0.9.6](https://www.nuget.org/packages/ModernWpfUI/0.9.7-preview.2) | Modern styles and controls for your WPF applications. |
| [Newtonsoft.Json 13.0.3](https://www.nuget.org/packages/Newtonsoft.Json) | Json.NET is a popular high-performance JSON framework for .NET |
| [RestoreWindowPlace 2.1.0](https://www.nuget.org/packages/RestoreWindowPlace) | Save and restore the place of the WPF window |
| [SkiaSharp 2.88.9](https://github.com/mono/SkiaSharp) | SkiaSharp is a cross-platform 2D graphics API for .NET platforms based on Google's Skia Graphics Library. |
| [Syncfusion.Licensing 24.1.41](https://www.nuget.org/packages/Syncfusion.Licensing) | Syncfusion licensing is a .NET library for validating the registered Syncfusion license in an application at runtime. |
| [System.Data.OleDb 9.0.0](https://www.nuget.org/packages/System.Data.OleDb) | This package implements a data provider for OLE DB data sources. |
| [System.Data.SqlClient 4.9.0](https://www.nuget.org/packages/System.Data.SqlClient) | The legacy .NET Data Provider for SQL Server. |
| [MahApps.Metro](https://mahapps.com/) | UI toolkit for WPF applications |
| [System.Data.SQLite.Core](https://www.nuget.org/packages/System.Data.SQLite.Core) | The official SQLite database engine for both x86 and x64 along with the ADO.NET provider. |
| [System.Speech 9.0.0](https://www.nuget.org/packages/System.Speech) | Provides APIs for speech recognition and synthesis built on the Microsoft Speech API in Windows. |
| [ToastNotifications.Messages.Net6 1.0.4](https://www.nuget.org/packages/ToastNotifications.Messages.Net6) | Toast notifications for WPF allows you to create and display rich notifications in WPF applications. |
| [ToastNotifications.Net6 1.0.4]([https://github.com/lahell/PSDiscoveryProtocol](https://github.com/haitongxuan/ToastNotifications)) | Toast notifications for WPF allows you to create and display rich notifications in WPF applications. |
| [Syncfusion.SfSkinManager.WPF 24.1.41](https://www.nuget.org/packages/Syncfusion.SfSkinManager.WPF) | The Syncfusion WPF Skin Manageris a .NET UI library that contains the SfSkinManager class, which helps apply the built-in themes to the Syncfusion UI controls for WPF. |
| [Syncfusion.Shared.Base 24.1.41](https://www.nuget.org/packages/Syncfusion.Shared.Base) | Syncfusion WinForms Shared Components |
| [Syncfusion.Shared.WPF 24.1.41](https://www.nuget.org/packages/Syncfusion.Shared.WPF) | Syncfusion WPF components |
| [Syncfusion.Themes.FluentDark.WPF 24.1.41](https://www.nuget.org/packages/Syncfusion.Themes.FluentDark.WPF) | The Syncfusion WPF Fluent Dark Theme for WPF contains the style resources to change the look and feel of a WPF application to be similar to the modern Windows UI style introduced in Windows 8 apps. |
| [Syncfusion.Tools.WPF 24.1.41](https://www.nuget.org/packages/Syncfusion.Tools.WPF) | This package contains WPF AutoComplete, WPF DockingManager, WPF Navigation Pane, WPF Hierarchy Navigator, WPF Range Slider, WPF Ribbon, WPF TabControl, WPF Wizard, and WPF Badge components for WPF application. |
| [Syncfusion.UI.WPF.NET 24.1.41](https://www.nuget.org/packages/Syncfusion.UI.WPF.NET) | Syncfusion WPF Controls is a library of 100+ WPF UI components and file formats to build modern WPF applications. |## ![](https://github.com/is-leeroy-jenkins/Bocifus/blob/main/Resources/Assets/GitHubImages/signature.png) Code Signing
Bocifus uses free code signing provided by [SignPath.io](https://signpath.io/) and a free code signing certificate
from [SignPath Foundation](https://signpath.org/).The binaries and installer are built on [AppVeyor](https://ci.appveyor.com/project/is-leeroy-jenkins/networkmanager) directly from the [GitHub repository](https://github.com/is-leeroy-jenkins/Bocifus/blob/main/appveyor.yml).
Build artifacts are automatically sent to [SignPath.io](https://signpath.io/) via webhook, where they are signed after manual approval by the maintainer.
The signed binaries are then uploaded to the [GitHub releases](https://github.com/is-leeroy-jenkins/Bocifus/releases) page.## ![](https://github.com/is-leeroy-jenkins/Bocifus/blob/main/Resources/Assets/GitHubImages/guidance.png) Privacy Policy
This program will not transfer any information to other networked systems unless specifically requested by the user or the person installing or operating it.
Bocifus has integrated the following services for additional functions, which can be enabled or disabled at the first start (in the welcome dialog) or at any time in the settings:
- [api.github.com](https://docs.github.com/en/site-policy/privacy-policies/github-general-privacy-statement) (Check for program updates)
- [ipify.org](https://www.ipify.org/) (Retrieve the public IP address used by the client)
- [ip-api.com](https://ip-api.com/docs/legal) (Retrieve network information such as geo location, ISP, DNS resolver used, etc. used by the client)## 📝 License
Bocifus is published under the [MIT General Public License v3](https://github.com/is-leeroy-jenkins/Bocifus/blob/main/LICENSE).
The licenses of the libraries used can be found [here](https://github.com/is-leeroy-jenkins/Bocifus/tree/main/Resources/Licenses).