From d82705bdb7cbca36492d232229a7807c2b5793a5 Mon Sep 17 00:00:00 2001 From: Parley Hatch Date: Thu, 29 Jan 2026 18:35:57 -0700 Subject: [PATCH] Fix pylance errors --- main.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/main.py b/main.py index 03605d2..1a25b7d 100644 --- a/main.py +++ b/main.py @@ -5,6 +5,7 @@ import readline # noqa: F401 — enables arrow-key history in input() from pathlib import Path from dotenv import load_dotenv from openai import OpenAI +from openai.types.chat import ChatCompletionMessageParam DB_PATH = Path(__file__).parent / "conversations.db" @@ -61,10 +62,11 @@ def get_or_create_conversation(conn: sqlite3.Connection, name: str | None, model (display_name, model), ) conn.commit() + assert cur.lastrowid is not None return cur.lastrowid -def load_messages(conn: sqlite3.Connection, conv_id: int) -> list[dict]: +def load_messages(conn: sqlite3.Connection, conv_id: int) -> list[ChatCompletionMessageParam]: rows = conn.execute( "SELECT role, content FROM messages WHERE conversation_id = ? ORDER BY id", (conv_id,), @@ -127,13 +129,12 @@ def chat_loop(client: OpenAI, conn: sqlite3.Connection, conv_id: int, model: str for msg in messages: if msg["role"] == "system": continue - prefix = "you" if msg["role"] == "user" else "gpt" - print(f"\n{prefix}> {msg['content']}") + prefix = "you" if msg["role"] == "user" else "assistant" + print(f"\n{prefix}> {msg.get('content', '')}") print() continue messages.append({"role": "user", "content": user_input}) - save_message(conn, conv_id, "user", user_input) try: print("gpt> ", end="", flush=True) @@ -152,6 +153,7 @@ def chat_loop(client: OpenAI, conn: sqlite3.Connection, conv_id: int, model: str assistant_content = "".join(full_response) messages.append({"role": "assistant", "content": assistant_content}) + save_message(conn, conv_id, "user", user_input) save_message(conn, conv_id, "assistant", assistant_content) except Exception as e: @@ -164,7 +166,7 @@ def main(): parser = argparse.ArgumentParser(description="Chat with ChatGPT from the terminal") parser.add_argument("-n", "--name", help="Conversation name (resumes if exists)") - parser.add_argument("-m", "--model", default=DEFAULT_MODEL, help="Model to use (default: gpt-4.1)") + parser.add_argument("-m", "--model", default=None, help="Model to use (default: gpt-4.1)") parser.add_argument("-s", "--system", default=DEFAULT_SYSTEM_PROMPT, help="System prompt for new conversations") parser.add_argument("-l", "--list", action="store_true", help="List saved conversations") @@ -196,9 +198,9 @@ def main(): print(f"Error: No conversation with ID {args.resume}", file=sys.stderr) sys.exit(1) conv_id = row[0] - model = args.model if args.model != DEFAULT_MODEL else row[1] + model = args.model if args.model is not None else row[1] else: - model = args.model + model = args.model or DEFAULT_MODEL conv_id = get_or_create_conversation(conn, args.name, model) try: