Skip to content

Commit

Permalink
Add together.xyz endpoint
Browse files Browse the repository at this point in the history
  • Loading branch information
kharvd committed Dec 12, 2023
1 parent 9ce23b0 commit 79981a0
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 2 deletions.
22 changes: 20 additions & 2 deletions gptcli/assistant.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,19 @@
from gptcli.llama import LLaMACompletionProvider
from gptcli.openai import OpenAICompletionProvider
from gptcli.anthropic import AnthropicCompletionProvider
from gptcli.together import TogetherCompletionProvider


class AssistantConfig(TypedDict, total=False):
messages: List[Message]
model: str
temperature: float
top_p: float
system_prefix: str
system_suffix: str
user_prefix: str
user_suffix: str
stop_tokens: List[str]


CONFIG_DEFAULTS = {
Expand Down Expand Up @@ -55,7 +61,9 @@ class AssistantConfig(TypedDict, total=False):
}


def get_completion_provider(model: str) -> CompletionProvider:
def get_completion_provider(
model: str, assistant_config: AssistantConfig
) -> CompletionProvider:
if model.startswith("gpt"):
return OpenAICompletionProvider()
elif model.startswith("claude"):
Expand All @@ -64,6 +72,16 @@ def get_completion_provider(model: str) -> CompletionProvider:
return LLaMACompletionProvider()
elif model.startswith("chat-bison"):
return GoogleCompletionProvider()
elif model.startswith("together"):
return TogetherCompletionProvider(
{
"system_prefix": assistant_config.get("system_prefix", ""),
"system_suffix": assistant_config.get("system_suffix", ""),
"user_prefix": assistant_config.get("user_prefix", ""),
"user_suffix": assistant_config.get("user_suffix", ""),
"stop_tokens": assistant_config.get("stop_tokens", []),
}
)
else:
raise ValueError(f"Unknown model: {model}")

Expand Down Expand Up @@ -103,7 +121,7 @@ def complete_chat(
self, messages, override_params: ModelOverrides = {}, stream: bool = True
) -> Iterator[str]:
model = self._param("model", override_params)
completion_provider = get_completion_provider(model)
completion_provider = get_completion_provider(model, self.config)
return completion_provider.complete(
messages,
{
Expand Down
1 change: 1 addition & 0 deletions gptcli/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ class GptCliConfig:
openai_api_key: Optional[str] = os.environ.get("OPENAI_API_KEY")
anthropic_api_key: Optional[str] = os.environ.get("ANTHROPIC_API_KEY")
google_api_key: Optional[str] = os.environ.get("GOOGLE_API_KEY")
together_api_key: Optional[str] = os.environ.get("TOGETHER_API_KEY")
log_file: Optional[str] = None
log_level: str = "INFO"
assistants: Dict[str, AssistantConfig] = {}
Expand Down
4 changes: 4 additions & 0 deletions gptcli/gpt.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
import datetime
import google.generativeai as genai
import gptcli.anthropic
import gptcli.together
from gptcli.assistant import (
Assistant,
DEFAULT_ASSISTANTS,
Expand Down Expand Up @@ -178,6 +179,9 @@ def main():
)
sys.exit(1)

if config.together_api_key:
gptcli.together.api_key = config.together_api_key

if config.anthropic_api_key:
gptcli.anthropic.api_key = config.anthropic_api_key

Expand Down
2 changes: 2 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ dependencies = [
"pytest==7.3.1",
"PyYAML==6.0",
"rich==13.7.0",
"requests==2.31.0",
"sseclient-py==1.8.0",
"tiktoken==0.5.2",
"tokenizers==0.15.0",
"typing_extensions==4.5.0",
Expand Down

0 comments on commit 79981a0

Please sign in to comment.