Skip to content

Commit f3c64d8

Browse files
committed
Make AiShell to automatically get session tokens
1 parent a4ab962 commit f3c64d8

File tree

1 file changed

+19
-2
lines changed

1 file changed

+19
-2
lines changed

aishell/cli.py

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,40 @@
11
import os
2+
import webbrowser
23

34
import typer
45
from rich.console import Console
6+
from yt_dlp.cookies import SUPPORTED_BROWSERS
57

8+
from aishell.adapters.openai_chatgpt_adapter import OpenAIChatGPTAdapter
9+
from aishell.exceptions import UnauthorizedAccessError
610
from aishell.models.language_model import LanguageModel
711
from aishell.query_clients import GPT3Client, OfficialChatGPTClient, QueryClient, ReverseEngineeredChatGPTClient
812

913
cli_app = typer.Typer()
1014

1115

16+
def _open_chatgpt_browser():
17+
CHATGPT_LOGIN_URL = 'https://chat.openai.com/auth/login?next=/chat'
18+
webbrowser.open(CHATGPT_LOGIN_URL)
19+
20+
1221
@cli_app.command()
13-
def ask(question: str, language_model: LanguageModel = LanguageModel.OFFICIAL_CHATGPT):
22+
def ask(question: str, language_model: LanguageModel = LanguageModel.REVERSE_ENGINEERED_CHATGPT):
1423
query_client: QueryClient
1524
if language_model == LanguageModel.GPT3:
1625
query_client = GPT3Client()
1726
elif language_model == LanguageModel.OFFICIAL_CHATGPT:
1827
query_client = OfficialChatGPTClient()
1928
elif language_model == LanguageModel.REVERSE_ENGINEERED_CHATGPT:
20-
query_client = ReverseEngineeredChatGPTClient()
29+
try:
30+
query_client = ReverseEngineeredChatGPTClient()
31+
except UnauthorizedAccessError:
32+
print('You are not logged in to OpenAI, attempting to log you in...')
33+
_open_chatgpt_browser()
34+
BROWSER_NAME = typer.prompt(f'Which browser did you use to log in? [{SUPPORTED_BROWSERS}]')
35+
adapter = OpenAIChatGPTAdapter(BROWSER_NAME)
36+
session_token = adapter.get_openai_session_token()
37+
query_client = ReverseEngineeredChatGPTClient(session_token=session_token)
2138

2239
query_client.query(question)
2340

0 commit comments

Comments
 (0)