ChangeLogο
All notable changes to SDialog will be documented here.
[0.4.6] 2026-03-12 π§ ο
Addedο
sdialog.agents:
New
@final_response_tooldecorator to return tool output directly as the final agent response (bypassing post-tool LLM synthesis for non-empty outputs).Example:
from sdialog.agents import Agent, final_response_tool @final_response_tool def get_table(callsign: str) -> str: return "| Timestamp | Transcription |\n|---|---|\n| ... | ... |" agent = Agent(tools=[get_table])
Changedο
sdialog.evaluation:
KDEDistanceEvaluatornow supports multiple values per dialog.Improved placeholder handling in STAR response generation.
Implemented Laplace smoothing in dialog log-likelihood computation.
[0.4.5] 2026-02-18 ποΈο
Addedο
sdialog.audio:
Voice cloning support in voice databases.
New TTS classes:
Qwen3TTS,Qwen3TTSVoiceClone, andBaseVoiceCloneTTS.Persona-based dynamic voice generation and customizable voice descriptions.
Improved speaker name / role mapping for voice assignment.
Changedο
sdialog.audio:
Dialog.to_audio()supports output path as positional argument.Audio pipeline now supports more flexible voice assignment.
Qwen3-TTS voice cloning set as default dynamic voice creation path.
Fixedο
sdialog.agents:
Restored orchestration behavior when agent is served.
sdialog.audio:
Fixed speaker-role mapping and case-sensitivity edge cases.
Fixed optional audio path handling in
Dialog.to_audio().Fixed label assignment and default
keep_duplicatehandling.
sdialog.evaluation:
Fixed division-by-zero /
log(0)edge cases in divergence computations.Added jitter handling for KL/CS divergence when variance is zero.
Fixed fallback behavior for unknown edges in flow score computation.
[0.4.3] 2025-11-30 πο
Addedο
sdialog.evaluation:
New readability and conversational metrics.
New scoring classes for individual linguistic features.
Added
Dialog.from_folder()to load dialogs from directories.Added
ToolSequenceValidatorfor validating tool usage order in dialogs.
Changedο
sdialog.evaluation:
Enhanced plotting support with customizable titles and labels.
sdialog.interpretability:
Improved top-k visualization and steering defaults.
Fixedο
sdialog.agents:
Improved tool invocation error handling.
sdialog:
Updated dialog prompt formatting.
[0.4.2] 2025-11-21 π οΈο
Changedο
sdialog.agents:
Improved progress bar behavior during dialog generation.
sdialog.audio:
Updated dependencies and dscaper integration behavior.
Documentationο
Added clearer Kokoro TTS installation instructions.
[0.4.1] 2025-11-20 π§ο
Fixedο
sdialog.audio:
Fixed dscaper timeline generation bug and test updates around deleted directories.
Documentationο
Updated audio tutorials and README installation instructions (including sox/ffmpeg and setup guidance).
[0.4.0] 2025-10-30 πο
Addedο
sdialog.audio: New audio generation module to transform text dialogs into audio conversations
Dialog.to_audio(): Convert any text dialog to audio with a single method callText-to-Speech (TTS): Support for multiple TTS engines including Kokoro and Hugging Face models
Voice databases: Automatic or manual voice assignment from Hugging Face, local storage, or on-the-fly generation based on persona attributes (age, gender, language)
Acoustic simulation: Realistic room acoustics simulation with ray tracing technology for spatial audio
Microphone simulation: Professional microphone impulse responses from brands like Shure, Sennheiser, and Sony
Room generation: Define and generate diverse room types with customizable properties (dimensions, wall materials, furniture placement)
Multiple formats: Export to WAV, MP3, or FLAC with custom sampling rates
Background/foreground effects: Add environmental sounds and acoustic variations
7 comprehensive tutorials covering audio generation, acoustic simulation, rooms, voice databases, and impulse responses
sdialog.interpretability:
Support for inspecting layer and component inputs with
Inspector(target="model.layers.15", inspect_input=True)Support for inspecting and steering input tokens (tokens given as input, not only generated ones), e.g.,
inspector.input[i][j].actwhereiis turn index andjis input token index
sdialog.config:
Support for Anthropic backend (#100)
Support for Azure OpenAI backend (#100)
Fixedο
sdialog.agents: Agent memory reset when no prompt system and no persona is given
[0.3.3] 2025-10-30 πο
Addedο
sdialog.server:
New module to serve agents via an Ollama/OpenAI-compatible REST API (works with UIs like Open WebUI) (#92)
sdialog:
Dialog.from_huggingface()to load/download dialogues directly from Hugging Face datasets (#59)
Changedο
sdialog.evaluation:
LLM judge methods now accept additional user-defined template arguments (e.g., like
documentin this example) (#86)
sdialog.agents:
Improved
Agentinitialization so agents can act as a proxy for external conversational systems (#90, fa1d8f3)
Fixedο
sdialog.evaluation:
Corrected Flesch Reading Ease and Gunning Fog score calculations (d1d4260)
[0.3.0] 2025-10-03 β¨ο
Addedο
sdialog:
Context: new class class to explicitly model the common/shared context of conversations (#73)Dialog: merge functionality - Added option to merge consecutive turns of the same speaker when loading a dialog (#77)Dialog: built-in string support - Added support to built-in str functions forDialogclass (#83)
sdialog.agents: Added new
sdialog.agentsmodule and movedAgentclass inside (#81)Agent: thinking capabilities - Agents can now handle internal thinking processes (#95)Agent: tools support - Added tools capabilities to Agents (e.g. RAG or any other function) (#84)New tutorial for agents with tools and thoughts.
sdialog.generators:
ContextGenerator: new class added to explicitly model the common/shared context of conversations (#73)Paraphraser: new class class to paraphrase dialogues (#76)
sdialog.evaluation:
LinguisticFeatureScore: new class added to compute Flesch reading ease, Gunning fog, Hesitation rate, and/or Mean turn length (#63)
sdialog.personas:
CustomerandSupportAgent: new personas added for customer service dialogues (#85)Persona: Added static method to get the list of all attributes inPersonaclass (#79)
Changedο
sdialog: Improved metadata handling (#66)
sdialog.interpretability: Improved and simplified the way inspection targets are defined in
interpretabilitysubmodule (#78)sdialog.evaluation.base:
LLMJudgeYesNoOutput: Renamed attributeyestopositive(#86)LLMJudgeScoreOutput: Renamed attributefeedbacktoreason(#86)
Fixedο
sdialog.generators: Fixed potential bug in
PersonaDialogGeneratorclass (#67)
Enhancedο
sdialog.agents: Added
base_modelattribute toAgentto direclty access the LLMβs underlying model for mechanistic interpretability (#74)sdialog.config: Added
clear_cache()method to config (#75)
Documentationο
API Documentation: Refactored/cleaned all components and added docstrings with examples (#82, #88)
Updated all tutorials to work with new code and added βOpen in Colabβ badges
Completed API documentation for initial official release (#87)
Automatic generation of
llm.txtfrom API documentation (24f6ee6)
[0.1.0] 2025-08-05 π±ο
Addedο
Multi-backend support (Hugging Face, Ollama, OpenAI, AWS)
Enhanced persona generation (beyond initial
PersonaDialogGenerator)Interpretability module (
sdialog.interpretability): inspectors, steerers, hooks, intrudersEvaluation module (
sdialog.evaluation): metrics, LLM-as-a-judge scoring, evaluators, dataset comparators
Changedο
Standardized / improved dialog format
Notesο
500 commits since 0.0.2 (post-JSALT 2025 consolidation)
Pendingο
Audio module (
sdialog.audio) integrationDocumentation updates
[0.0.2] 2025-06-03 π§ο
Addedο
languageattribute toPersonaclassPersonaDialogGeneratortogeneratorsmodule to support persona-based dialogue generatin with single LLM:from sdialog.generators import PersonaDialogGenerator dialog_generator = PersonaDialogGenerator( model=MODEL_NAME, persona_a=bob_persona, persona_b=alice_persona, ) dialog_generator.generate().print()
Fixedο
Python 2 and 3 compatibility problem with scikit-learn (using version 0.20.1 from now on)
PyPi: setup.py:
long_description_content_typeset to'text/markdown'
[0.0.1] 2025-05-22 πο
(initial release)