2.0.0
Co-Authored-By: Quentin Torroba <quentin.torroba@mistral.ai> Co-Authored-By: Michel Thomazo <michel.thomazo@mistral.ai> Co-Authored-By: Clément Drouin <clement.drouin@mistral.ai> Co-Authored-By: Vincent Guilloux <vincent.guilloux@mistral.ai> Co-Authored-By: Clément Siriex <clement.sirieix@mistral.ai> Co-Authored-By: Kim-Adeline Miguel <kimadeline.miguel@mistral.ai> Co-Authored-By: Thaddee Tyl <thaddee.tyl@gmail.com> Co-Authored-By: David Brochart <david.brochart@gmail.com> Co-Authored-By: Joseph Guhlin <joseph.guhlin@gmail.com> Co-Authored-By: Thomas Kenbeek <thomaskenbeek@gmail.com> Co-Authored-By: Remenby31 <baptiste.cruvellier31@gmail.com>
This commit is contained in:
parent
79f215d91c
commit
d33db9fff8
217 changed files with 16911 additions and 4305 deletions
41
vibe/core/session/session_migration.py
Normal file
41
vibe/core/session/session_migration.py
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
from __future__ import annotations
|
||||
|
||||
import asyncio
|
||||
import json
|
||||
from pathlib import Path
|
||||
|
||||
from vibe.core.config import SessionLoggingConfig
|
||||
from vibe.core.session.session_logger import SessionLogger
|
||||
|
||||
|
||||
def migrate_sessions_entrypoint(session_config: SessionLoggingConfig) -> int:
|
||||
return asyncio.run(migrate_sessions(session_config))
|
||||
|
||||
|
||||
async def migrate_sessions(session_config: SessionLoggingConfig) -> int:
|
||||
"""Helper for migrating session data from singular JSON files to the format introduced in Vibe 2.0 with per-session folders with split metadata and message files."""
|
||||
save_dir = session_config.save_dir
|
||||
if not save_dir or not session_config.enabled:
|
||||
return 0
|
||||
|
||||
successful_migrations = 0
|
||||
session_files = list(Path(save_dir).glob(f"{session_config.session_prefix}_*.json"))
|
||||
for session_file in session_files:
|
||||
try:
|
||||
with open(session_file) as f:
|
||||
session_data = f.read()
|
||||
session_json = json.loads(session_data)
|
||||
metadata = session_json["metadata"]
|
||||
messages = session_json["messages"]
|
||||
|
||||
session_dir = Path(save_dir) / session_file.stem
|
||||
session_dir.mkdir()
|
||||
|
||||
await SessionLogger.persist_metadata(metadata, session_dir)
|
||||
await SessionLogger.persist_messages(messages, session_dir)
|
||||
session_file.unlink()
|
||||
successful_migrations += 1
|
||||
except Exception:
|
||||
continue
|
||||
|
||||
return successful_migrations
|
||||
Loading…
Add table
Add a link
Reference in a new issue