DeepSeekChatbotVB 1.0.2
dotnet tool install --global DeepSeekChatbotVB --version 1.0.2
dotnet new tool-manifest
dotnet tool install --local DeepSeekChatbotVB --version 1.0.2
#tool dotnet:?package=DeepSeekChatbotVB&version=1.0.2
nuke :add-package DeepSeekChatbotVB --version 1.0.2
DeepSeekChatbotVB
A console-based chatbot built with VB.NET, using DeepSeek API with text-to-speech (TTS) support, packaged as a .NET Global Tool.
v1.0.2 Latest Update: Added full note conversion (A#-G# to "A sharp"-"G sharp") optimized for Chinese TTS voices.
Version Notes: 1.0.0 → 1.0.2
✨ v1.0.2 Improvements:
- Extended voice processing to convert all musical notes (A#-G#) to spoken form ("A sharp"-"G sharp")
- Optimized for Chinese TTS voices which may mispronounce sharp symbols
- Replaced loop-based conversion with efficient Regex pattern matching
v1.0.1 Improvements:
- Fixed inefficient retry logic in voice saving: Now exits immediately on success instead of completing all retries
- Removed redundant save operation that always ran after retry loop
- Improved async/await pattern for better performance
- Added graceful error handling for voice save failures (shows warning instead of crashing)
- Added basic "C#" to "C sharp" conversion for voice output
Note: Starting from version 1.0.0, this .NET tool always work with the same configuration - simply create an empty folder with a
deepseekvb-config.jsonfile and rundeepseekvb.
Features
- 🤖 Chat with DeepSeek AI directly from the console
- 🔊 Text-to-speech conversion using Edge TTS
- 📝 Conversation logging in YAML formats
- ⚙️ Configurable via JSON configuration file
- 🎯 Automatic retry for voice saving failures
Installation
Prerequisites
- .NET 10.0 or later
Install as .NET Global Tool
dotnet tool install --global DeepSeekChatbotVB
Update
dotnet tool update --global DeepSeekChatbotVB
Uninstall
dotnet tool uninstall --global DeepSeekChatbotVB
Usage
Quick Start
Create an empty folder, place your deepseekvb-config.json file inside it, and run:
deepseekvb
The tool will automatically create the necessary output directories (deepseekvb-voices) and files (deepseekvb-chatlog.yml) as needed.
Note: Without
deepseekvb-config.jsonfile, you will be prompted to enter your DeepSeek API key, and the chatbot will use the default configuration.
Configuration
Create a deepseekvb-config.json file in your working directory:
{
"api_key": "sk-YOUR_DEEPSEEK_API_KEY",
"system_prompt": [
"You are a helpful assistant, mastering various scientific fields.",
"Please answer the user's questions precisely in English."
],
"voices": {
"assistant": "zh-CN-YunxiNeural",
"user": "zh-CN-YunyangNeural"
},
"model_params": {
"temperature": 0.7,
"max_tokens": 500,
"frequency_penalty": 0.3,
"presence_penalty": 0.3
}
}
Configuration Options
| Option | Required | Default | Description |
|---|---|---|---|
api_key |
Yes | - | Your DeepSeek API key |
system_prompt |
No | [] |
List of system prompt strings |
voices.assistant |
No | zh-CN-YunxiNeural |
TTS voice for AI responses |
voices.user |
No | zh-CN-YunyangNeural |
TTS voice for user input |
model_params.temperature |
No | 0.7 |
Controls response randomness (0-1) |
model_params.max_tokens |
No | 500 |
Maximum response length |
model_params.frequency_penalty |
No | 0.3 |
Reduces repetitive words |
model_params.presence_penalty |
No | 0.3 |
Encourages new topics |
Minimal Configuration Example
{
"api_key": "sk-YOUR_DEEPSEEK_API_KEY",
"system_prompt": ["You are a helpful assistant. Please reply in English."]
}
Output Files
deepseekvb-chatlog.ymlfile:- Structured conversation log for programmatic access
deepseekvb-voicesdirectory:user_input_{index}.mp3(voice recording of user input)bot_output_{index}.mp3(voice recording of chatbot response)
Acknowledgments
- DeepSeek API for AI chat completions
- EdgeTTS.DotNet for text-to-speech
- YamlDotNet for YAML serialization
License
This project is licensed under the BSD-3-Clause License. See the LICENSE file for details.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
This package has no dependencies.