From f8ed0e36367b71746e22c1e9665a41fd7c161c6e Mon Sep 17 00:00:00 2001 From: juk0de Date: Sat, 5 Aug 2023 17:45:43 +0200 Subject: [PATCH] tags are now separated by ' ' (old format is still readable) --- chatmastermind/storage.py | 11 +++++++---- chatmastermind/utils.py | 8 ++++---- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/chatmastermind/storage.py b/chatmastermind/storage.py index bf6d81c..aa6288c 100644 --- a/chatmastermind/storage.py +++ b/chatmastermind/storage.py @@ -7,10 +7,13 @@ from typing import List, Dict, Any, Optional def read_file(fname: pathlib.Path, tags_only: bool = False) -> Dict[str, Any]: with open(fname, "r") as fd: + tagline = fd.readline().strip().split(':')[1].strip() + # also support tags separated by ',' (old format) + separator = ',' if ',' in tagline else ' ' + tags = [t.strip() for t in tagline.split(separator)] if tags_only: - return {"tags": [x.strip() for x in fd.readline().strip().split(':')[1].strip().split(',')]} + return {"tags": tags} text = fd.read().strip().split('\n') - tags = [x.strip() for x in text.pop(0).split(':')[1].strip().split(',')] question_idx = text.index("=== QUESTION ===") + 1 answer_idx = text.index("==== ANSWER ====") question = "\n".join(text[question_idx:answer_idx]).strip() @@ -21,7 +24,7 @@ def read_file(fname: pathlib.Path, tags_only: bool = False) -> Dict[str, Any]: def dump_data(data: Dict[str, Any]) -> str: with io.StringIO() as fd: - fd.write(f'TAGS: {", ".join(data["tags"])}\n') + fd.write(f'TAGS: {" ".join(data["tags"])}\n') fd.write(f'=== QUESTION ===\n{data["question"]}\n') fd.write(f'==== ANSWER ====\n{data["answer"]}\n') return fd.getvalue() @@ -29,7 +32,7 @@ def dump_data(data: Dict[str, Any]) -> str: def write_file(fname: str, data: Dict[str, Any]) -> None: with open(fname, "w") as fd: - fd.write(f'TAGS: {", ".join(data["tags"])}\n') + fd.write(f'TAGS: {" ".join(data["tags"])}\n') fd.write(f'=== QUESTION ===\n{data["question"]}\n') fd.write(f'==== ANSWER ====\n{data["answer"]}\n') diff --git a/chatmastermind/utils.py b/chatmastermind/utils.py index 387db7b..7bac123 100644 --- a/chatmastermind/utils.py +++ b/chatmastermind/utils.py @@ -15,11 +15,11 @@ def process_tags(tags: list[str], extags: list[str], otags: list[str]) -> None: printed_messages = [] if tags: - printed_messages.append(f"Tags: {', '.join(tags)}") + printed_messages.append(f"Tags: {' '.join(tags)}") if extags: - printed_messages.append(f"Excluding tags: {', '.join(extags)}") + printed_messages.append(f"Excluding tags: {' '.join(extags)}") if otags: - printed_messages.append(f"Output tags: {', '.join(otags)}") + printed_messages.append(f"Output tags: {' '.join(otags)}") if printed_messages: print("\n".join(printed_messages)) @@ -41,7 +41,7 @@ def message_to_chat(message: Dict[str, str], append_message(chat, 'user', message['question']) append_message(chat, 'assistant', message['answer']) if with_tags: - tags = ", ".join(message['tags']) + tags = " ".join(message['tags']) append_message(chat, 'tags', tags) if with_file: append_message(chat, 'file', message['file'])