Thursday, January 30, 2025

Chatterbox v0.2 - Now with DeepSeek support!

As I’m writing this, a new Chatterbox release is available on GitHub. As with the initial release, you can either download the source and recompile it or grab an executable (Windows, 32-bit) from the release.

(If you have never heard of Chatterbox, you should probably read the initial release article.)

The biggest change since v0.1 is support for DeepSeek AI.

Friday, January 24, 2025

Delphi and AI[6]: DeepSeek reasoning model (Encoding a multi-line string)

An interesting AI has just appeared on my radar - DeepSeek. It exposes a "normal" chat model deepseek-chat and a "reasoning" (that's the interesting part) model deepseek-reasoning. While working on DeepSeek support for the Chatterbox (more on that in few days) I thought it would be interesting to ask the "reasoning" model the "multi-line string encoding" question that every other AI has failed.

Warning: DeepSeek privacy policy states: "When you use our Services, we may collect your text or audio input, prompt, uploaded files, feedback, chat history, or other content that you provide to our model and Services." Don't send any private or proprietary information in the chat!

The log is provided on GitHub.

Just as a reminder, the question was:

"I have a multiline string containing newline ASCII characters (TMemo.Text). I want to change it to a single-line string with only printable ASCII characters. I could do that with BASE64 encoding, for example. I would, however, like to keep the text as much readable as possible by "encoding" only non-printable characters. Is there a simple way to do that?"

Sunday, January 19, 2025

Delphi and AI[5]: Encoding a multi-line string

Recently I had to convert a multi-line string into a single-line string value for storage (ignore the 'why' of it; let's just blame it on a legacy code). My first idea was to do a Base64 encode of the string, but I was in a mood for some fun and so I asked my friendly AI helpers:

"I have a multiline string containing newline ASCII characters (TMemo.Text). I want to change it to a single-line string with only printable ASCII characters. I could do that with BASE64 encoding, for example. I would, however, like to keep the text as much readable as possible by "encoding" only non-printable characters. Is there a simple way to do that?"

Let's see what they came up with!

Full transcripts, as usual, are on GitHub. This time I had also created a program containing all implementations.

Sunday, January 05, 2025

Delphi and AI [4]: Device-independent clipboard

While working on Chatterbox I ran into number of problems, most of them caused by my limited knowledge of device-independent programming with Firemonkey. One particular challenge was copying data to the clipboard - something that is AFAIK available on all supported platforms. So I asked my friendly AI helpers:

"How can I copy text to clipboard in a Delphi Firemonkey application?"
As always, all logs are available on GitHub.