Compare commits

..

No commits in common. "76bee1aed99c2033ad162b6d2a2373ddbfa485ef" and "b859c8bb953952b788bc72531da75616d0e24aff" have entirely different histories.

3 changed files with 28 additions and 18 deletions

View File

@ -1,6 +1,6 @@
[tool.poetry]
name = "llm-chat"
version = "1.1.5"
version = "1.1.3"
description = "A general CLI interface for large language models."
authors = ["Paul Harrison <paul@harrison.sh>"]
readme = "README.md"

View File

@ -8,7 +8,13 @@ from rich.markdown import Markdown
from llm_chat.chat import ChatProtocol, get_chat, get_chat_class
from llm_chat.models import Message, Role
from llm_chat.settings import Model, OpenAISettings
from llm_chat.settings import (
DEFAULT_HISTORY_DIR,
DEFAULT_MODEL,
DEFAULT_TEMPERATURE,
Model,
OpenAISettings,
)
app = typer.Typer()
@ -100,15 +106,15 @@ def chat(
),
] = None,
model: Annotated[
Optional[Model],
Model,
typer.Option(..., "--model", "-m", help="Model to use.", show_choices=True),
] = None,
] = DEFAULT_MODEL,
temperature: Annotated[
Optional[float],
float,
typer.Option(
..., "--temperature", "-t", help="Model temperature (i.e. creativeness)."
),
] = None,
] = DEFAULT_TEMPERATURE,
context: Annotated[
list[Path],
typer.Option(
@ -126,14 +132,17 @@ def chat(
),
] = [],
history_dir: Annotated[
Optional[Path],
Path,
typer.Option(
...,
"--history-dir",
"-d",
help="Path to the directory where conversation history will be saved.",
exists=True,
dir_okay=True,
file_okay=False,
),
] = None,
] = DEFAULT_HISTORY_DIR,
name: Annotated[
str,
typer.Option(
@ -146,16 +155,17 @@ def chat(
) -> None:
"""Start a chat session."""
# TODO: Add option to provide context string as an argument.
args: dict[str, Any] = {}
if api_key is not None:
args |= {"api_key": api_key}
if model is not None:
args |= {"model": model}
if temperature is not None:
args |= {"temperature": temperature}
if history_dir is not None:
args |= {"history_dir": history_dir}
settings = OpenAISettings(**args)
settings = OpenAISettings(
api_key=api_key,
model=model,
temperature=temperature,
history_dir=history_dir,
)
else:
settings = OpenAISettings(
model=model, temperature=temperature, history_dir=history_dir
)
context_messages = [load_context(path) for path in context]

View File

@ -15,7 +15,7 @@ class Model(StrEnum):
DEFAULT_MODEL = Model.GPT3
DEFAULT_TEMPERATURE = 0.7
DEFAULT_HISTORY_DIR = Path.home() / ".llm_chat" / "history"
DEFAULT_HISTORY_DIR = Path.home() / ".llm_chat"
class OpenAISettings(BaseSettings):