Fix pylance errors

This commit is contained in:
Parley Hatch 2026-01-29 18:35:57 -07:00
parent bbc6242b19
commit d82705bdb7

16
main.py
View file

@ -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: