From 3576dee75a1623aa2385b6afe8b922ad5affca26 Mon Sep 17 00:00:00 2001 From: Heiner Lohaus Date: Wed, 6 Dec 2023 09:35:36 +0100 Subject: [PATCH 1/2] Add selenium to dockerfile Load model and provider list in gui Remove needs_auth in HuggingChat Add default model and login url in gui --- Dockerfile | 33 --------- README.md | 2 +- docker-compose.yml | 15 ++-- docker/Dockerfile | 42 +++++++++++ docker/start-selenium-node.sh | 17 +++++ g4f.png | Bin 0 -> 155456 bytes g4f/Provider/Bing.py | 7 +- g4f/Provider/PerplexityAi.py | 9 ++- g4f/Provider/helper.py | 9 ++- g4f/Provider/needs_auth/Bard.py | 16 +++-- g4f/Provider/needs_auth/HuggingChat.py | 6 +- g4f/Provider/needs_auth/OpenaiChat.py | 37 ++++------ g4f/__init__.py | 15 ++-- g4f/gui/client/js/chat.v1.js | 95 +++++++++---------------- g4f/gui/server/backend.py | 44 +++++++----- g4f/gui/server/provider.py | 14 ---- g4f/models.py | 3 +- g4f/webdriver.py | 10 ++- ptest.py | 57 --------------- 19 files changed, 189 insertions(+), 242 deletions(-) delete mode 100644 Dockerfile create mode 100644 docker/Dockerfile create mode 100755 docker/start-selenium-node.sh create mode 100644 g4f.png delete mode 100644 g4f/gui/server/provider.py delete mode 100644 ptest.py diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 503a6dcc6d..0000000000 --- a/Dockerfile +++ /dev/null @@ -1,33 +0,0 @@ -# Use the official lightweight Python image. -# https://hub.docker.com/_/python -FROM python:3.9-slim - -# Ensure Python outputs everything immediately (useful for real-time logging in Docker). -ENV PYTHONUNBUFFERED 1 - -# Set the working directory in the container. -WORKDIR /app - -# Update the system packages and install system-level dependencies required for compilation. -# gcc: Compiler required for some Python packages. -# build-essential: Contains necessary tools and libraries for building software. -RUN apt-get update && apt-get install -y --no-install-recommends \ - gcc \ - build-essential \ - && rm -rf /var/lib/apt/lists/* - -# Copy the project's requirements file into the container. -COPY requirements.txt /app/ - -# Upgrade pip for the latest features and install the project's Python dependencies. -RUN pip install --upgrade pip && pip install -r requirements.txt - -# Copy the entire project into the container. -# This may include all code, assets, and configuration files required to run the application. -COPY . /app/ - -# Expose port 80 and 1337 -EXPOSE 80 1337 - -# Define the default command to run the app using Python's module mode. -ENTRYPOINT ["python", "-m", "g4f.cli"] diff --git a/README.md b/README.md index be45c06aa3..30c1c8e58b 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -![248433934-7886223b-c1d1-4260-82aa-da5741f303bb](https://github.com/xtekky/gpt4free/assets/98614666/ea012c87-76e0-496a-8ac4-e2de090cc6c9) +![g4f](g4f.png) Buy Me a Coffee at ko-fi.com
diff --git a/docker-compose.yml b/docker-compose.yml index 43aa6c02eb..89b11f0670 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,18 +1,17 @@ version: '3' services: - gpt4free-api: &gpt4free + gpt4free: image: gpt4free:latest + shm_size: 2gb build: context: . - dockerfile: Dockerfile + dockerfile: docker/Dockerfile cache_from: - gpt4free:latest - ports: - - '1337:1337' - command: api - gpt4free-gui: - <<: *gpt4free + volumes: + - .:/app ports: - '8080:80' - command: gui + - '1337:1337' + - '7900:7900' \ No newline at end of file diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 0000000000..354f66d1ae --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,42 @@ +FROM selenium/node-chrome + +ENV SE_SCREEN_WIDTH 1920 +ENV G4F_LOGIN_URL http://localhost:7900/?autoconnect=1&resize=scale&password=secret + +USER root + +# Python packages +RUN apt-get -qqy update \ + && apt-get -qqy install \ + python3 \ + python-is-python3 \ + pip + +# Cleanup +RUN rm -rf /var/lib/apt/lists/* /var/cache/apt/* \ + && apt-get -qyy autoremove \ + && apt-get -qyy clean + +# Update entrypoint +COPY docker/start-selenium-node.sh /opt/bin/ + +# Change background image +COPY g4f.png /usr/share/images/fluxbox/ubuntu-light.png + +# Switch user +USER 1200 + +# Set the working directory in the container. +WORKDIR /app + +# Copy the project's requirements file into the container. +COPY requirements.txt /app/ + +# Upgrade pip for the latest features and install the project's Python dependencies. +RUN pip install --upgrade pip && pip install -r requirements.txt + +# Copy the entire package into the container. +COPY g4f /app/g4f + +# Expose ports +EXPOSE 80 1337 \ No newline at end of file diff --git a/docker/start-selenium-node.sh b/docker/start-selenium-node.sh new file mode 100755 index 0000000000..a02d0e82d2 --- /dev/null +++ b/docker/start-selenium-node.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +# Start the pulseaudio server +pulseaudio -D --exit-idle-time=-1 + +# Load the virtual sink and set it as default +pacmd load-module module-virtual-sink sink_name=v1 +pacmd set-default-sink v1 + +# Set the monitor of v1 sink to be the default source +pacmd set-default-source v1.monitor + +rm -f /tmp/.X*lock + +# Start app servers +python -m g4f.cli api & +python -m g4f.cli gui \ No newline at end of file diff --git a/g4f.png b/g4f.png new file mode 100644 index 0000000000000000000000000000000000000000..41bf9e6b8061bf6c25d6f0b2b682b7027cedff73 GIT binary patch literal 155456 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 CreateResult: with WebDriverSession(webdriver, "", virtual_display=virtual_display, proxy=proxy) as driver: - from selenium.webdriver.common.by import By - from selenium.webdriver.support.ui import WebDriverWait - from selenium.webdriver.support import expected_conditions as EC - from selenium.webdriver.common.keys import Keys - prompt = format_prompt(messages) driver.get(f"{cls.url}/") diff --git a/g4f/Provider/helper.py b/g4f/Provider/helper.py index 2171f0b787..61d9cb624f 100644 --- a/g4f/Provider/helper.py +++ b/g4f/Provider/helper.py @@ -6,6 +6,7 @@ import random import string import secrets +import os from os import path from asyncio import AbstractEventLoop from platformdirs import user_config_dir @@ -18,7 +19,7 @@ edge, vivaldi, firefox, - BrowserCookieError + _LinuxPasswordManager ) from ..typing import Dict, Messages @@ -81,6 +82,10 @@ def open_urls_in_browser(browser): except webbrowser.Error: continue +# Check for broken dbus address in docker image +if os.environ.get('DBUS_SESSION_BUS_ADDRESS') == "/dev/null": + _LinuxPasswordManager.get_password = lambda a, b: b"secret" + # Load cookies for a domain from all supported browsers. # Cache the results in the "_cookies" variable. def get_cookies(domain_name=''): @@ -100,7 +105,7 @@ def g4f(domain_name): for cookie in cookie_jar: if cookie.name not in cookies: cookies[cookie.name] = cookie.value - except BrowserCookieError as e: + except: pass _cookies[domain_name] = cookies return _cookies[domain_name] diff --git a/g4f/Provider/needs_auth/Bard.py b/g4f/Provider/needs_auth/Bard.py index 877af37e2b..48e535dd3c 100644 --- a/g4f/Provider/needs_auth/Bard.py +++ b/g4f/Provider/needs_auth/Bard.py @@ -1,6 +1,11 @@ from __future__ import annotations import time +import os +from selenium.webdriver.common.by import By +from selenium.webdriver.support.ui import WebDriverWait +from selenium.webdriver.support import expected_conditions as EC +from selenium.webdriver.common.keys import Keys from ...typing import CreateResult, Messages from ..base_provider import BaseProvider @@ -27,10 +32,6 @@ def create_completion( prompt = format_prompt(messages) session = WebDriverSession(webdriver, user_data_dir, headless, proxy=proxy) with session as driver: - from selenium.webdriver.common.by import By - from selenium.webdriver.support.ui import WebDriverWait - from selenium.webdriver.support import expected_conditions as EC - try: driver.get(f"{cls.url}/chat") wait = WebDriverWait(driver, 10 if headless else 240) @@ -40,6 +41,9 @@ def create_completion( if not webdriver: driver = session.reopen() driver.get(f"{cls.url}/chat") + login_url = os.environ.get("G4F_LOGIN_URL") + if login_url: + yield f"Please login: [Google Bard]({login_url})\n\n" wait = WebDriverWait(driver, 240) wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, "div.ql-editor.textarea"))) else: @@ -61,8 +65,8 @@ def create_completion( driver.execute_script(script) # Submit prompt - driver.find_element(By.CSS_SELECTOR, "div.ql-editor.ql-blank.textarea").send_keys(prompt) - driver.find_element(By.CSS_SELECTOR, "button.send-button").click() + driver.find_element(By.CSS_SELECTOR, "div.ql-editor.textarea").send_keys(prompt) + driver.find_element(By.CSS_SELECTOR, "div.ql-editor.textarea").send_keys(Keys.ENTER) # Yield response while True: diff --git a/g4f/Provider/needs_auth/HuggingChat.py b/g4f/Provider/needs_auth/HuggingChat.py index 59e2da7352..530069c0be 100644 --- a/g4f/Provider/needs_auth/HuggingChat.py +++ b/g4f/Provider/needs_auth/HuggingChat.py @@ -11,7 +11,6 @@ class HuggingChat(AsyncGeneratorProvider): url = "https://huggingface.co/chat" - needs_auth = True working = True model = "meta-llama/Llama-2-70b-chat-hf" @@ -22,12 +21,11 @@ async def create_async_generator( messages: Messages, stream: bool = True, proxy: str = None, + web_search: bool = False, cookies: dict = None, **kwargs ) -> AsyncResult: model = model if model else cls.model - if proxy and "://" not in proxy: - proxy = f"http://{proxy}" if not cookies: cookies = get_cookies(".huggingface.co") @@ -46,7 +44,7 @@ async def create_async_generator( "inputs": format_prompt(messages), "is_retry": False, "response_id": str(uuid.uuid4()), - "web_search": False + "web_search": web_search } async with session.post(f"{cls.url}/conversation/{conversation_id}", json=send, proxy=proxy) as response: async for line in response.content: diff --git a/g4f/Provider/needs_auth/OpenaiChat.py b/g4f/Provider/needs_auth/OpenaiChat.py index af62382a37..818c163fec 100644 --- a/g4f/Provider/needs_auth/OpenaiChat.py +++ b/g4f/Provider/needs_auth/OpenaiChat.py @@ -1,12 +1,15 @@ from __future__ import annotations -import uuid, json, asyncio +import uuid, json, asyncio, os from py_arkose_generator.arkose import get_values_for_request from asyncstdlib.itertools import tee from async_property import async_cached_property - +from selenium.webdriver.common.by import By +from selenium.webdriver.support.ui import WebDriverWait +from selenium.webdriver.support import expected_conditions as EC + from ..base_provider import AsyncGeneratorProvider -from ..helper import get_event_loop +from ..helper import get_event_loop, format_prompt from ...webdriver import get_browser from ...typing import AsyncResult, Messages from ...requests import StreamSession @@ -84,7 +87,12 @@ async def create_async_generator( if not parent_id: parent_id = str(uuid.uuid4()) if not access_token: - access_token = await cls.get_access_token(proxy) + access_token = cls._access_token + if not access_token: + login_url = os.environ.get("G4F_LOGIN_URL") + if login_url: + yield f"Please login: [ChatGPT]({login_url})\n\n" + access_token = cls._access_token = await cls.browse_access_token(proxy) headers = { "Accept": "text/event-stream", "Authorization": f"Bearer {access_token}", @@ -106,10 +114,11 @@ async def create_async_generator( "history_and_training_disabled": history_disabled and not auto_continue, } if action != "continue": + prompt = format_prompt(messages) if not conversation_id else messages[-1]["content"] data["messages"] = [{ "id": str(uuid.uuid4()), "author": {"role": "user"}, - "content": {"content_type": "text", "parts": [messages[-1]["content"]]}, + "content": {"content_type": "text", "parts": [prompt]}, }] async with session.post(f"{cls.url}/backend-api/conversation", json=data) as response: try: @@ -155,14 +164,7 @@ async def create_async_generator( @classmethod async def browse_access_token(cls, proxy: str = None) -> str: def browse() -> str: - try: - from selenium.webdriver.common.by import By - from selenium.webdriver.support.ui import WebDriverWait - from selenium.webdriver.support import expected_conditions as EC - - driver = get_browser(proxy=proxy) - except ImportError: - return + driver = get_browser(proxy=proxy) try: driver.get(f"{cls.url}/") WebDriverWait(driver, 1200).until( @@ -177,15 +179,6 @@ def browse() -> str: None, browse ) - - @classmethod - async def get_access_token(cls, proxy: str = None) -> str: - if not cls._access_token: - cls._access_token = await cls.browse_access_token(proxy) - if not cls._access_token: - raise RuntimeError("Read access token failed") - return cls._access_token - async def get_arkose_token(proxy: str = None, timeout: int = None) -> str: config = { diff --git a/g4f/__init__.py b/g4f/__init__.py index 4c47fe7d9c..1ea6d3a3d0 100644 --- a/g4f/__init__.py +++ b/g4f/__init__.py @@ -25,7 +25,8 @@ def get_model_and_provider(model : Union[Model, str], provider : Union[type[BaseProvider], None], stream : bool, ignored : List[str] = None, - ignore_working: bool = False) -> tuple[Model, type[BaseProvider]]: + ignore_working: bool = False, + ignore_stream: bool = False) -> tuple[Model, type[BaseProvider]]: if isinstance(model, str): if model in ModelUtils.convert: @@ -45,7 +46,7 @@ def get_model_and_provider(model : Union[Model, str], if not provider.working and not ignore_working: raise RuntimeError(f'{provider.__name__} is not working') - if not provider.supports_stream and stream: + if not ignore_stream and not provider.supports_stream and stream: raise ValueError(f'{provider.__name__} does not support "stream" argument') if debug.logging: @@ -61,15 +62,17 @@ def create(model : Union[Model, str], stream : bool = False, auth : Union[str, None] = None, ignored : List[str] = None, - ignore_working: bool = False, **kwargs) -> Union[CreateResult, str]: + ignore_working: bool = False, + ignore_stream_and_auth: bool = False, + **kwargs) -> Union[CreateResult, str]: - model, provider = get_model_and_provider(model, provider, stream, ignored, ignore_working) + model, provider = get_model_and_provider(model, provider, stream, ignored, ignore_working, ignore_stream_and_auth) - if provider.needs_auth and not auth: + if not ignore_stream_and_auth and provider.needs_auth and not auth: raise ValueError( f'{provider.__name__} requires authentication (use auth=\'cookie or token or jwt ...\' param)') - if provider.needs_auth: + if auth: kwargs['auth'] = auth result = provider.create_completion(model.name, messages, stream, **kwargs) diff --git a/g4f/gui/client/js/chat.v1.js b/g4f/gui/client/js/chat.v1.js index 5b7a0bf00d..2b1fdcb081 100644 --- a/g4f/gui/client/js/chat.v1.js +++ b/g4f/gui/client/js/chat.v1.js @@ -161,7 +161,7 @@ const ask_gpt = async (txtMsgs) => { text += chunk; - document.getElementById(`gpt_${window.token}`).innerHTML = markdown.render(text); + document.getElementById(`gpt_${window.token}`).innerHTML = markdown.render(text).replace(" { + response = await fetch('/backend-api/v2/models') + models = await response.json() + let select = document.getElementById('model'); + select.textContent = ''; + + let auto = document.createElement('option'); + auto.value = ''; + auto.text = 'Default Model'; + select.appendChild(auto); for (model of models) { - let model_info = document.createElement('option'); - model_info.value = model - model_info.text = model + let option = document.createElement('option'); + option.value = option.text = model; + select.appendChild(option); + } +})(); - MODELS_SELECT.appendChild(model_info); +(async () => { + response = await fetch('/backend-api/v2/providers') + providers = await response.json() + + let select = document.getElementById('provider'); + select.textContent = ''; + + let auto = document.createElement('option'); + auto.value = ''; + auto.text = 'Provider: Auto'; + select.appendChild(auto); + + for (provider of providers) { + let option = document.createElement('option'); + option.value = option.text = provider; + select.appendChild(option); } -} \ No newline at end of file +})(); \ No newline at end of file diff --git a/g4f/gui/server/backend.py b/g4f/gui/server/backend.py index 3d7bfedc59..033632019a 100644 --- a/g4f/gui/server/backend.py +++ b/g4f/gui/server/backend.py @@ -3,9 +3,8 @@ from flask import request from .internet import search from .config import special_instructions -from .provider import get_provider -g4f.logging = True +g4f.debug.logging = True class Backend_Api: def __init__(self, app) -> None: @@ -15,6 +14,10 @@ def __init__(self, app) -> None: 'function': self.models, 'methods' : ['GET'] }, + '/backend-api/v2/providers': { + 'function': self.providers, + 'methods' : ['GET'] + }, '/backend-api/v2/conversation': { 'function': self._conversation, 'methods': ['POST'] @@ -37,6 +40,9 @@ def error(self): def models(self): return g4f._all_models + def providers(self): + return [provider.__name__ for provider in g4f.Provider.__providers__ if provider.working] + def _gen_title(self): return { 'title': '' @@ -47,26 +53,26 @@ def _conversation(self): #jailbreak = request.json['jailbreak'] #internet_access = request.json['meta']['content']['internet_access'] #conversation = request.json['meta']['content']['conversation'] - prompt = request.json['meta']['content']['parts'] - model = request.json['model'] - provider = request.json.get('provider').split('g4f.Provider.')[1] - - messages = prompt - print(messages) + messages = request.json['meta']['content']['parts'] + model = request.json.get('model') + model = model if model else g4f.models.default + provider = request.json.get('provider', 'Auto').replace('g4f.Provider.', '') + provider = provider if provider != "Auto" else None + if provider != None: + provider = g4f.Provider.ProviderUtils.convert.get(provider) - def stream(): - yield from g4f.ChatCompletion.create( - model=model, - provider=get_provider(provider), - messages=messages, - stream=True, - ) if provider else g4f.ChatCompletion.create( - model=model, messages=messages, stream=True - ) + response = g4f.ChatCompletion.create( + model=model, + provider=provider, + messages=messages, + stream=True, + ignore_stream_and_auth=True + ) - return self.app.response_class(stream(), mimetype='text/event-stream') + return self.app.response_class(response, mimetype='text/event-stream') - except Exception as e: + except Exception as e: + print(e) return { 'code' : 'G4F_ERROR', '_action': '_ask', diff --git a/g4f/gui/server/provider.py b/g4f/gui/server/provider.py deleted file mode 100644 index 8c7ac7551c..0000000000 --- a/g4f/gui/server/provider.py +++ /dev/null @@ -1,14 +0,0 @@ -from __future__ import annotations - -import g4f -from g4f import BaseProvider - - -def get_provider(provider: str) -> BaseProvider | None: - if not isinstance(provider, str): - return None - print(provider) - if provider == 'g4f.Provider.Auto': - return None - - return g4f.Provider.ProviderUtils.convert.get(provider) diff --git a/g4f/models.py b/g4f/models.py index 2f86891d86..a6cd724bf4 100644 --- a/g4f/models.py +++ b/g4f/models.py @@ -7,6 +7,7 @@ ChatgptDemoAi, ChatAnywhere, ChatgptNext, + HuggingChat, GptForLove, ChatgptAi, DeepInfra, @@ -100,7 +101,7 @@ def __all__() -> list[str]: llama2_70b = Model( name = "meta-llama/Llama-2-70b-chat-hf", base_provider = "huggingface", - best_provider = RetryProvider([Llama2, DeepInfra])) + best_provider = RetryProvider([Llama2, DeepInfra, HuggingChat])) # Bard palm = Model( diff --git a/g4f/webdriver.py b/g4f/webdriver.py index 288eed0e71..f0fa1fbafd 100644 --- a/g4f/webdriver.py +++ b/g4f/webdriver.py @@ -4,6 +4,8 @@ from platformdirs import user_config_dir from selenium.webdriver.remote.webdriver import WebDriver from undetected_chromedriver import Chrome, ChromeOptions +import os.path +from . import debug try: from pyvirtualdisplay import Display @@ -19,12 +21,16 @@ def get_browser( ) -> WebDriver: if user_data_dir == None: user_data_dir = user_config_dir("g4f") + if debug.logging: + print("Open browser with config dir:", user_data_dir) if not options: options = ChromeOptions() - options.add_argument("window-size=1920,1080"); if proxy: options.add_argument(f'--proxy-server={proxy}') - return Chrome(options=options, user_data_dir=user_data_dir, headless=headless) + driver = '/usr/bin/chromedriver' + if not os.path.isfile(driver): + driver = None + return Chrome(options=options, user_data_dir=user_data_dir, driver_executable_path=driver, headless=headless) class WebDriverSession(): def __init__( diff --git a/ptest.py b/ptest.py deleted file mode 100644 index 38dd2aa9ea..0000000000 --- a/ptest.py +++ /dev/null @@ -1,57 +0,0 @@ -import requests, json - - -headers = { - 'Accept-Language': 'en,fr-FR;q=0.9,fr;q=0.8,es-ES;q=0.7,es;q=0.6,en-US;q=0.5,am;q=0.4,de;q=0.3', - 'Cache-Control': 'no-cache', - 'Connection': 'keep-alive', - 'Content-Type': 'application/json', - 'Origin': 'https://deepinfra.com', - 'Pragma': 'no-cache', - 'Referer': 'https://deepinfra.com/', - 'Sec-Fetch-Dest': 'empty', - 'Sec-Fetch-Mode': 'cors', - 'Sec-Fetch-Site': 'same-site', - 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36', - 'X-Deepinfra-Source': 'web-embed', - 'accept': 'text/event-stream', - 'sec-ch-ua': '"Google Chrome";v="119", "Chromium";v="119", "Not?A_Brand";v="24"', - 'sec-ch-ua-mobile': '?0', - 'sec-ch-ua-platform': '"macOS"', -} - -json_data = json.dumps({ - 'model': 'meta-llama/Llama-2-70b-chat-hf', - 'messages': [ - { - 'role': 'user', - 'content': 'what is the meaning of life ?', - }, - ], - 'stream': True}, separators=(',', ':')) - -response = requests.post('https://api.deepinfra.com/v1/openai/chat/completions', - headers=headers, data=json_data, stream=True) - -response.raise_for_status() -first = True - -for line in response.iter_content(chunk_size=1024): - if line.startswith(b"data: [DONE]"): - break - - elif line.startswith(b"data: "): - chunk = json.loads(line[6:])["choices"][0]["delta"].get("content") - - if chunk: - if first: - chunk = chunk.lstrip() - if chunk: - first = False - - print(chunk) - -# Note: json_data will not be serialized by requests -# exactly as it was in the original request. -#data = '{"model":"meta-llama/Llama-2-70b-chat-hf","messages":[{"role":"user","content":"what is the meaning of life ?"},{"role":"assistant","content":" The meaning of life is a question that has puzzled philosophers, religious leaders, scientists, and many others for centuries. There are many different perspectives on this question, and there is no one definitive answer. However, here are some possible approaches to understanding the meaning of life:\\n\\n1. Religious or spiritual perspective: Many people believe that the meaning of life is to fulfill a divine or spiritual purpose. According to this view, our lives have a higher purpose, which is to serve a deity or follow a set of moral principles. The meaning of life is then found in fulfilling this purpose, whether it be through prayer, service, or good works.\\n2. Personal fulfillment: Some people believe that the meaning of life is to find personal fulfillment and happiness. According to this view, we should pursue our passions and interests, cultivate strong relationships, and strive to live a life that is rich in experience and personal growth.\\n3. Social or cultural perspective: Others argue that the meaning of life is tied to our social and cultural contexts. From this perspective, the meaning of life is to contribute to the greater good of society, to uphold certain values or traditions, or to leave a lasting legacy.\\n4. Existentialism: Existentialists believe that the meaning of life is not predetermined or inherent, but rather something that each individual must create for themselves. According to this view, life has no inherent meaning, but we can give it meaning through our choices, actions, and experiences.\\n5. Scientific perspective: Some people believe that the meaning of life can be understood through scientific inquiry. From this perspective, the meaning of life might be seen as a product of evolution, a byproduct of the natural processes that gave rise to consciousness and intelligence.\\n6. Humanistic perspective: Humanists believe that the meaning of life is to promote human flourishing and well-being. According to this view, we should strive to create a world where individuals can live fulfilling lives, pursue their goals and dreams, and reach their full potential.\\n7. Nihilistic perspective: A minority perspective is that life has no inherent meaning and that any attempt to impose meaning on it is ultimately futile. This view is often associated with nihilism, which argues that traditional beliefs and values are baseless and that morality is an illusion.\\n8. Mystical perspective: Finally, some people believe that the meaning of life cannot be expressed in words or concepts, but can only be experienced directly through mystical practices such as meditation or psychedelic experiences.\\n\\nUltimately, the meaning of life may be something that each person must determine for themselves based on their own unique experiences, values, and beliefs. It could also be said that life has multiple meanings, and that these meanings can change throughout our lives as we grow, learn, and evolve as individuals."},{"role":"user","content":"welll well well"},{"role":"assistant","content":" I\'m glad you\'re feeling enthusiastic! \\"Well\\" can be used in various ways to express excitement or surprise, such as:\\n\\n* \\"Well, well, well!\\" - This phrase is often used to express surprise or intrigue, especially when something unexpected happens or when you\'re presented with new information.\\n* \\"Look at you, well done!\\" - Here, \\"well\\" is used to convey approval or admiration for someone\'s achievement or effort.\\n* \\"You think you\'re so smart, don\'t you?\\" - In this sentence, \\"well\\" is used to express sarcasm or skepticism towards someone who thinks they know everything.\\n\\nHowever, I\'d like to point out that using \\"well\\" too frequently can come across as insincere or filler words, especially in formal writing or professional settings. It\'s important to use language that accurately conveys your intended message without relying on unnecessary filler words. Is there anything else you\'d like me to help you with?"},{"role":"user","content":"nice"}],"stream":true}' -#response = requests.post('https://api.deepinfra.com/v1/openai/chat/completions', headers=headers, data=data) \ No newline at end of file From c667f1cec521534781de51e316d5edeed89bdb89 Mon Sep 17 00:00:00 2001 From: Heiner Lohaus Date: Wed, 6 Dec 2023 11:54:50 +0100 Subject: [PATCH 2/2] Improve docker image --- docker-compose.yml | 4 +- docker/Dockerfile | 3 +- docker/start-selenium-node.sh | 17 -------- docker/supervisor.conf | 76 +++++++++++++++++++++++++++++++++++ g4f/gui/client/js/chat.v1.js | 2 +- g4f/gui/server/backend.py | 5 ++- g4f/models.py | 2 + 7 files changed, 86 insertions(+), 23 deletions(-) delete mode 100755 docker/start-selenium-node.sh create mode 100755 docker/supervisor.conf diff --git a/docker-compose.yml b/docker-compose.yml index 89b11f0670..8dfe1f350c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,13 +2,11 @@ version: '3' services: gpt4free: - image: gpt4free:latest + image: ghcr.io/xtekky/gpt4free:latest shm_size: 2gb build: context: . dockerfile: docker/Dockerfile - cache_from: - - gpt4free:latest volumes: - .:/app ports: diff --git a/docker/Dockerfile b/docker/Dockerfile index 354f66d1ae..0c52940d5e 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -2,6 +2,7 @@ FROM selenium/node-chrome ENV SE_SCREEN_WIDTH 1920 ENV G4F_LOGIN_URL http://localhost:7900/?autoconnect=1&resize=scale&password=secret +ENV PYTHONUNBUFFERED 1 USER root @@ -18,7 +19,7 @@ RUN rm -rf /var/lib/apt/lists/* /var/cache/apt/* \ && apt-get -qyy clean # Update entrypoint -COPY docker/start-selenium-node.sh /opt/bin/ +COPY docker/supervisor.conf /etc/supervisor/conf.d/selenium.conf # Change background image COPY g4f.png /usr/share/images/fluxbox/ubuntu-light.png diff --git a/docker/start-selenium-node.sh b/docker/start-selenium-node.sh deleted file mode 100755 index a02d0e82d2..0000000000 --- a/docker/start-selenium-node.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash - -# Start the pulseaudio server -pulseaudio -D --exit-idle-time=-1 - -# Load the virtual sink and set it as default -pacmd load-module module-virtual-sink sink_name=v1 -pacmd set-default-sink v1 - -# Set the monitor of v1 sink to be the default source -pacmd set-default-source v1.monitor - -rm -f /tmp/.X*lock - -# Start app servers -python -m g4f.cli api & -python -m g4f.cli gui \ No newline at end of file diff --git a/docker/supervisor.conf b/docker/supervisor.conf new file mode 100755 index 0000000000..6d82f6c9cb --- /dev/null +++ b/docker/supervisor.conf @@ -0,0 +1,76 @@ +[program:xvfb] +priority=0 +command=/opt/bin/start-xvfb.sh +autostart=true +autorestart=true + +;Logs +redirect_stderr=false +stdout_logfile=/var/log/supervisor/xvfb-stdout.log +stderr_logfile=/var/log/supervisor/xvfb-stderr.log +stdout_logfile_maxbytes=50MB +stderr_logfile_maxbytes=50MB +stdout_logfile_backups=5 +stderr_logfile_backups=5 +stdout_capture_maxbytes=50MB +stderr_capture_maxbytes=50MB + +[program:vnc] +priority=5 +command=/opt/bin/start-vnc.sh +autostart=true +autorestart=true + +;Logs +redirect_stderr=false +stdout_logfile=/var/log/supervisor/vnc-stdout.log +stderr_logfile=/var/log/supervisor/vnc-stderr.log +stdout_logfile_maxbytes=50MB +stderr_logfile_maxbytes=50MB +stdout_logfile_backups=5 +stderr_logfile_backups=5 +stdout_capture_maxbytes=50MB +stderr_capture_maxbytes=50MB + +[program:novnc] +priority=10 +command=/opt/bin/start-novnc.sh +autostart=true +autorestart=true + +;Logs +redirect_stderr=false +stdout_logfile=/var/log/supervisor/novnc-stdout.log +stderr_logfile=/var/log/supervisor/novnc-stderr.log +stdout_logfile_maxbytes=50MB +stderr_logfile_maxbytes=50MB +stdout_logfile_backups=5 +stderr_logfile_backups=5 +stdout_capture_maxbytes=50MB +stderr_capture_maxbytes=50MB + +[program:g4f-cli] +priority=15 +command=python -m g4f.cli api +directory=/app +stopasgroup=true +autostart=true +autorestart=true + +;Logs (all Hub activity redirected to stdout so it can be seen through "docker logs" +redirect_stderr=true +stdout_logfile=/dev/stdout +stdout_logfile_maxbytes=0 + +[program:g4f-gui] +priority=15 +command=python -m g4f.cli gui +directory=/app +stopasgroup=true +autostart=true +autorestart=true + +;Logs (all Hub activity redirected to stdout so it can be seen through "docker logs" +redirect_stderr=true +stdout_logfile=/dev/stdout +stdout_logfile_maxbytes=0 \ No newline at end of file diff --git a/g4f/gui/client/js/chat.v1.js b/g4f/gui/client/js/chat.v1.js index 2b1fdcb081..2844b73e72 100644 --- a/g4f/gui/client/js/chat.v1.js +++ b/g4f/gui/client/js/chat.v1.js @@ -601,7 +601,7 @@ observer.observe(message_input, { attributes: true }); let auto = document.createElement('option'); auto.value = ''; - auto.text = 'Default Model'; + auto.text = 'Model: Default'; select.appendChild(auto); for (model of models) { diff --git a/g4f/gui/server/backend.py b/g4f/gui/server/backend.py index 033632019a..e1abb7642b 100644 --- a/g4f/gui/server/backend.py +++ b/g4f/gui/server/backend.py @@ -41,7 +41,10 @@ def models(self): return g4f._all_models def providers(self): - return [provider.__name__ for provider in g4f.Provider.__providers__ if provider.working] + return [ + provider.__name__ for provider in g4f.Provider.__providers__ + if provider.working and provider is not g4f.Provider.RetryProvider + ] def _gen_title(self): return { diff --git a/g4f/models.py b/g4f/models.py index a6cd724bf4..cf24ff5267 100644 --- a/g4f/models.py +++ b/g4f/models.py @@ -275,6 +275,8 @@ class ModelUtils: 'gpt-3.5-turbo-16k' : gpt_35_turbo_16k, 'gpt-3.5-turbo-16k-0613' : gpt_35_turbo_16k_0613, + 'gpt-3.5-long': gpt_35_long, + # gpt-4 'gpt-4' : gpt_4, 'gpt-4-0613' : gpt_4_0613,