Giter VIP home page Giter VIP logo

fantasy-peak / cpp-freegpt-webui Goto Github PK

View Code? Open in Web Editor NEW
232.0 9.0 48.0 728 KB

GPT 3.5/4 with a Chat Web UI. No API key required. Web server developed with c++

License: GNU General Public License v3.0

HTML 2.15% C++ 79.18% Lua 0.27% CSS 5.04% JavaScript 5.94% Python 6.99% Dockerfile 0.44%
cpp20-coroutine freegpt gpt-3 website gpt4 gpt4free chatgpt chatgpt-clone openai-api openai-chatgpt

cpp-freegpt-webui's Introduction

Cpp FreeGPT WebUI

Docker Pulls

GPT 3.5/4

NOT REQUIRE ANY API KEY ❌🔑

This project features a WebUI utilizing the G4F API.
Experience the power of ChatGPT with a user-friendly interface, enhanced jailbreaks, and completely free.

Support this repository:

  • Star the project: Star this. It means a lot to me! 💕

Getting Started ✅

To get started with this project, you'll need to clone the repository and have g++ >= 13.1 installed on your system.

Cloning the Repository 📥

Run the following command to clone the repository:

git clone https://github.com/fantasy-peak/cpp-freegpt-webui.git

Compile And Running the Application 🚀

To run the application, run the following command:

1. Check local g++ version, need g++ version >= gcc version 13.1.0 (GCC)

2. install xmake
curl -kfsSL https://xmake.io/shget.text | bash -s v2.8.6
source ~/.xmake/profile

3. install libcurl-impersonate, ubuntu (apt-get install libcurl4-openssl-dev) centos7 (yum install libcurl-devel.x86_64)
wget https://github.com/lwthiker/curl-impersonate/releases/download/v0.6.0-alpha.1/libcurl-impersonate-v0.6.0-alpha.1.x86_64-linux-gnu.tar.gz
sudo mv libcurl-impersonate-v0.6.0-alpha.1.x86_64-linux-gnu.tar.gz /usr/lib64
cd /usr/lib64
sudo tar -xvf libcurl-impersonate-v0.6.0-alpha.1.x86_64-linux-gnu.tar.gz
export LD_LIBRARY_PATH=/usr/lib64:$LD_LIBRARY_PATH
export LIBRARY_PATH=/usr/lib64:$LIBRARY_PATH

4. Compiling
git clone https://github.com/fantasy-peak/cpp-freegpt-webui.git
cd cpp-freegpt-webui
xmake build -v -y
xmake install -o .
cd bin
./cpp-freegpt-webui ../cfg/cpp-free-gpt.yml

Access the application in your browser using the URL:

http://127.0.0.1:8858/chat

Running the Docker

Pull the Docker image from Docker Hub:

docker pull fantasypeak/freegpt:latest

Run the application using Docker:

docker run -it --rm \
   -p 8858:8858 \
   --name freegpt \
   fantasypeak/freegpt:latest

Run the application(use http proxy) using Docker:

docker run --rm -it \
   --net=host \
   --name freegpt \
   -e HTTP_PROXY=http://127.0.0.1:3128 \
   fantasypeak/freegpt:latest

Configurable environment variables

01. CHAT_PATH=/chat
02. HTTP_PROXY=http://127.0.0.1:8080
03. PROVIDERS="[\"gpt-4-ChatgptAi\",\"gpt-3.5-turbo-stream-DeepAi\"]"
04. IP_WHITE_LIST="[\"127.0.0.1\",\"192.168.1.1\"]"
05. PORT=8858
06. HOST=0.0.0.0
07. WORK_THREAD_NUM=8
08. INTERVAL=300
09. ZEUS=http://127.0.0.1:8860
10. FLARESOLVERR=http://127.0.0.1:8191/v1

Start the Zeus Service [optional]

This is not necessary, Zeus is a cpp-freegpt-webui auxiliary service, because some provider needs to perform specific operations such as get cookies and refreshing web pages etc. If you need to use these specific providers, you need to start it(Zeus Docker)

Start zeus service

docker run -d \
  --name=zeus \
  -p 8860:8860 \
  --rm \
  fantasypeak/freegpt-zeus:latest

Start the application

docker run -it --rm \
   --net=host \
   --name freegpt \
   fantasypeak/freegpt:latest

Start the flaresolverr docker [optional]

This is not necessary, The some provider(aivvm,gptChatly) is enabled Cloudflare challenges, so we need use flaresolverr to solve it.

docker run -d \
  --name=flaresolverr \
  -p 8191:8191 \
  -e LOG_LEVEL=info \
  --restart unless-stopped \
  ghcr.io/flaresolverr/flaresolverr:latest

Call OpenAi Api

It supports calling OpenAI's API, but need set API_KEY

docker run --rm -it \
   -p 8858:8858 \
   --name freegpt \
   -e API_KEY=a40f22f2-c1a2-4b1d-a47f-55ae1a7ddbed \
   fantasypeak/freegpt:latest

WebUI

The application interface was incorporated from the chatgpt-clone repository.

API G4F

The free GPT-4 API was incorporated from the GPT4Free repository.

Star History Chart:

Star History Chart

Legal Notice

This repository is not associated with or endorsed by providers of the APIs contained in this GitHub repository. This project is intended for educational purposes only. This is just a little personal project. Sites may contact me to improve their security or request the removal of their site from this repository.

Please note the following:

  1. Disclaimer: The APIs, services, and trademarks mentioned in this repository belong to their respective owners. This project is not claiming any right over them nor is it affiliated with or endorsed by any of the providers mentioned.

  2. Responsibility: The author of this repository is not responsible for any consequences, damages, or losses arising from the use or misuse of this repository or the content provided by the third-party APIs. Users are solely responsible for their actions and any repercussions that may follow. We strongly recommend the users to follow the TOS of the each Website.

  3. Educational Purposes Only: This repository and its content are provided strictly for educational purposes. By using the information and code provided, users acknowledge that they are using the APIs and models at their own risk and agree to comply with any applicable laws and regulations.

  4. Copyright: All content in this repository, including but not limited to code, images, and documentation, is the intellectual property of the repository author, unless otherwise stated. Unauthorized copying, distribution, or use of any content in this repository is strictly prohibited without the express written consent of the repository author.

  5. Indemnification: Users agree to indemnify, defend, and hold harmless the author of this repository from and against any and all claims, liabilities, damages, losses, or expenses, including legal fees and costs, arising out of or in any way connected with their use or misuse of this repository, its content, or related third-party APIs.

  6. Updates and Changes: The author reserves the right to modify, update, or remove any content, information, or features in this repository at any time without prior notice. Users are responsible for regularly reviewing the content and any changes made to this repository.

By using this repository or any code related to it, you agree to these terms. The author is not responsible for any copies, forks, or reuploads made by other users. This is the author's only account and repository. To prevent impersonation or irresponsible actions, you may comply with the GNU GPL license this Repository uses.

cpp-freegpt-webui's People

Contributors

bipindr123 avatar fantasy-peak avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cpp-freegpt-webui's Issues

The assistant suffers from amnesia

You ask the assistant a question, he answers something, you ask a clarifying question, but he doesn’t understand where he is, what he is, who he is and what’s going on.

Replit

Any way to host it on replit or other websites?

[https://you.com] -> [Couldn't connect to server]

china, VPN connect success, can access internate,
a8e9ab369f9fdf54844bcb137dda3a34

or
2023-12-13 15:37:57 [2023-12-13 07:37:57.057][thread 12][aiChatOnline][free_gpt.cpp:2253][error] [https://aichatonline.org/chatgpt/wp-json/mwai-ui/v1/chats/submit] -> [Couldn't connect to server]

bulid in docker but not working<this problem has been sloved>

when container is runing, can not open in browser, and docker log dispaly error message:

[2023-09-11 01:50:44.405][thread 7][main][main.cpp:297][info] server start accept at 0.0.0.0:8858 ...
[2023-09-11 02:02:27.457][thread 17][startSession][main.cpp:217][error] bad_request: [/]
[2023-09-11 02:02:29.184][thread 18][startSession][main.cpp:217][error] bad_request: [/]
[2023-09-11 02:02:29.653][thread 19][startSession][main.cpp:217][error] bad_request: [/]
[2023-09-11 02:02:29.871][thread 20][startSession][main.cpp:217][error] bad_request: [/]
[2023-09-11 02:02:30.063][thread 21][startSession][main.cpp:217][error] bad_request: [/]
^C[2023-09-11 02:02:31.476][thread 7][main][main.cpp:312][info] stoped ...

Build fatal error: format: No such file or directory

Running xmake build -v gives the following error

[ 20%]: cache compiling.release src/free_gpt.cpp
/usr/bin/gcc -c -std=c++23 -Iinclude -isystem /home/ubuntu/.xmake/packages/o/openssl/1.1.1-t/45389129480645f6b5d519201fd29ab1/include -isystem /home/ubuntu/.xmake/packages/y/yaml_cpp_struct/v1.0.2/ba3f47c1dad64d64b1b0c182451288fd/include -isystem /home/ubuntu/.xmake/packages/m/magic_enum/v0.9.0/b7058fe3b4494be485a75baa4b3c2444/include -isystem /home/ubuntu/.xmake/packages/v/visit_struct/v1.1.0/70859d88e1594d11b2ed8a4be2fb1113/include -isystem /home/ubuntu/.xmake/packages/y/yaml-cpp/0.8.0/5cee0c2bc67a480fba56397b7957ccd9/include -isystem /home/ubuntu/.xmake/packages/s/spdlog/v1.12.0/b71e918ea13a4b7db6c1b6098388b0bb/include -isystem /home/ubuntu/.xmake/packages/b/boost/1.83.0/91ef36792a824e68b3b1d17c4cfb3202/include -isystem /home/ubuntu/.xmake/packages/b/bzip2/1.0.8/f3d161f5f92f487e939d378246898edf/include -isystem /home/ubuntu/.xmake/packages/i/inja/v3.4.0/66e6a5d79e9348768d27c879df5e8ba8/include -isystem /home/ubuntu/.xmake/packages/n/nlohmann_json/v3.11.2/39b878b8b2074cc4a5ccd1acb76aef3c/include -isystem /home/ubuntu/.xmake/packages/p/plusaes/v1.0.0/bd466a2cf43f4ef28e1fe7ae7aba47bf/include -isystem /home/ubuntu/.xmake/packages/z/zlib/v1.3/71dda3adb15a4c2597e114d96ae95578/include -O2 -Wall -Wextra -pedantic-errors -Wno-missing-field-initializers -Wno-ignored-qualifiers -o build/.objs/cpp-freegpt-webui/linux/arm64-v8a/release/src/free_gpt.cpp.o src/free_gpt.cpp
error: src/main.cpp:3:10: fatal error: format: No such file or directory
" 3 | #include < format >"

Build error 'awaitable’ in namespace ‘boost::asio’ does not name a template type

Any idea?
Using GCC-13

error: In file included from src/free_gpt.cpp:20: include/free_gpt.h:21:18: error: ‘awaitable’ in namespace ‘boost::asio’ does not name a template type include/free_gpt.h:22:18: error: ‘awaitable’ in namespace ‘boost::asio’ does not name a template type include/free_gpt.h:23:18: error: ‘awaitable’ in namespace ‘boost::asio’ does not name a template type include/free_gpt.h:24:18: error: ‘awaitable’ in namespace ‘boost::asio’ does not name a template type include/free_gpt.h:25:18: error: ‘awaitable’ in namespace ‘boost::asio’ does not name a template type include/free_gpt.h:26:18: error: ‘awaitable’ in namespace ‘boost::asio’ does not name a template type include/free_gpt.h:27:18: error: ‘awaitable’ in namespace ‘boost::asio’ does not name a template type include/free_gpt.h:28:18: error: ‘awaitable’ in namespace ‘boost::asio’ does not name a template type include/free_gpt.h:29:18: error: ‘awaitable’ in namespace ‘boost::asio’ does not name a template type include/free_gpt.h:30:18: error: ‘awaitable’ in namespace ‘boost::asio’ does not name a template type include/free_gpt.h:31:18: error: ‘awaitable’ in namespace ‘boost::asio’ does not name a template type include/free_gpt.h:32:18: error: ‘awaitable’ in namespace ‘boost::asio’ does not name a template type include/free_gpt.h:33:18: error: ‘awaitable’ in namespace ‘boost::asio’ does not name a template type include/free_gpt.h:34:18: error: ‘awaitable’ in namespace ‘boost::asio’ does not name a template type include/free_gpt.h:35:18: error: ‘awaitable’ in namespace ‘boost::asio’ does not name a template type include/free_gpt.h:36:18: error: ‘awaitable’ in namespace ‘boost::asio’ does not name a template type include/free_gpt.h:37:18: error: ‘awaitable’ in namespace ‘boost::asio’ does not name a template type include/free_gpt.h:38:18: error: ‘awaitable’ in namespace ‘boost::asio’ does not name a template type include/free_gpt.h:39:18: error: ‘awaitable’ in namespace ‘boost::asio’ does not name a template type include/free_gpt.h:40:18: error: ‘awaitable’ in namespace ‘boost::asio’ does not name a template type include/free_gpt.h:41:18: error: ‘awaitable’ in namespace ‘boost::asio’ does not name a template type include/free_gpt.h:42:18: error: ‘awaitable’ in namespace ‘boost::asio’ does not name a template type include/free_gpt.h:45:18: error: ‘awaitable’ in namespace ‘boost::asio’ does not name a template type include/helper.hpp:12:75: error: ‘use_awaitable’ is not a member of ‘boost::asio’ include/helper.hpp:27:22: error: ‘jthread’ is not a member of ‘std’ include/helper.hpp:27:29: error: template argument 1 is invalid include/helper.hpp:27:29: error: template argument 2 is invalid include/helper.hpp:43:19: error: request for member ‘emplace_back’ in ‘((IoContextPool*)this)->IoContextPool::m_threads’, which is of non-class type ‘int’ include/helper.hpp:43:37: error: ‘jthread’ is not a member of ‘std’ include/helper.hpp:59:21: error: ‘awaitable’ in namespace ‘boost::asio’ does not name a template type include/helper.hpp:69:19: error: lambda templates are only available with ‘-std=c++20’ or ‘-std=gnu++20’ [-Wc++20-extensions] include/helper.hpp:111:36: error: ‘std::ranges’ has not been declared include/helper.hpp:111:50: error: expected ‘>’ before ‘R’ include/helper.hpp:112:5: error: ‘requires’ does not name a type include/helper.hpp:119:16: error: ‘std::ranges’ has not been declared include/helper.hpp:119:30: error: expected ‘>’ before ‘Container’ include/helper.hpp:120:13: error: expected constructor, destructor, or type conversion before ‘(’ token src/free_gpt.cpp:37:14: error: ‘std::ranges’ has not been declared src/free_gpt.cpp:103:22: error: use of ‘auto’ in parameter declaration only available with ‘-std=c++20’ or ‘-fconcepts’ src/free_gpt.cpp:121:14: error: ‘awaitable’ in namespace ‘boost::asio’ does not name a template type src/free_gpt.cpp:197:14: error: ‘awaitable’ in namespace ‘boost::asio’ does not name a template type src/free_gpt.cpp:210:14: error: ‘awaitable’ in namespace ‘boost::asio’ does not name a template type src/free_gpt.cpp:327:18: error: use of ‘auto’ in parameter declaration only available with ‘-std=c++20’ or ‘-fconcepts’ src/free_gpt.cpp:327:31: error: use of ‘auto’ in parameter declaration only available with ‘-std=c++20’ or ‘-fconcepts’ src/free_gpt.cpp:303:46: error: ‘format’ is not a member of ‘std’; did you mean ‘fmt::v9::format’? src/free_gpt.cpp:334:36: error: ‘format’ is not a member of ‘std’; did you mean ‘fmt::v9::format’? 334 | auto error_info = std::format("[{}] -> [{}]", m_url, curl_easy_strerror(res)); src/free_gpt.cpp:340:25: error: ‘format’ is not a member of ‘std’; did you mean ‘fmt::v9::format’? src/free_gpt.cpp:381:6: error: ‘expected’ in namespace ‘std’ does not name a template type src/free_gpt.cpp:424:14: error: ‘awaitable’ in namespace ‘boost::asio’ does not name a template type src/free_gpt.cpp:545:14: error: ‘awaitable’ in namespace ‘boost::asio’ does not name a template type src/free_gpt.cpp:619:14: error: ‘awaitable’ in namespace ‘boost::asio’ does not name a template type src/free_gpt.cpp:677:14: error: ‘awaitable’ in namespace ‘boost::asio’ does not name a template type src/free_gpt.cpp:838:14: error: ‘awaitable’ in namespace ‘boost::asio’ does not name a template type src/free_gpt.cpp:954:14: error: ‘awaitable’ in namespace ‘boost::asio’ does not name a template type src/free_gpt.cpp:1004:14: error: ‘awaitable’ in namespace ‘boost::asio’ does not name a template type src/free_gpt.cpp:1099:14: error: ‘awaitable’ in namespace ‘boost::asio’ does not name a template type src/free_gpt.cpp:1176:14: error: ‘awaitable’ in namespace ‘boost::asio’ does not name a template type src/free_gpt.cpp:1338:14: error: ‘awaitable’ in namespace ‘boost::asio’ does not name a template type src/free_gpt.cpp:1419:14: error: ‘awaitable’ in namespace ‘boost::asio’ does not name a template type src/free_gpt.cpp:1544:14: error: ‘awaitable’ in namespace ‘boost::asio’ does not name a template type src/free_gpt.cpp:1594:14: error: ‘awaitable’ in namespace ‘boost::asio’ does not name a template type src/free_gpt.cpp:1673:14: error: ‘awaitable’ in namespace ‘boost::asio’ does not name a template type src/free_gpt.cpp:1849:14: error: ‘awaitable’ in namespace ‘boost::asio’ does not name a template type src/free_gpt.cpp:2090:14: error: ‘awaitable’ in namespace ‘boost::asio’ does not name a template type src/free_gpt.cpp:2208:14: error: ‘awaitable’ in namespace ‘boost::asio’ does not name a template type src/free_gpt.cpp:2363:14: error: ‘awaitable’ in namespace ‘boost::asio’ does not name a template type src/free_gpt.cpp:2449:14: error: ‘awaitable’ in namespace ‘boost::asio’ does not name a template type src/free_gpt.cpp:2505:14: error: ‘awaitable’ in namespace ‘boost::asio’ does not name a template type src/free_gpt.cpp:2568:14: error: ‘awaitable’ in namespace ‘boost::asio’ does not name a template type src/free_gpt.cpp:2619:14: error: ‘awaitable’ in namespace ‘boost::asio’ does not name a template type src/free_gpt.cpp:2698:14: error: ‘awaitable’ in namespace ‘boost::asio’ does not name a template type

403(Forbidden)

Several providers have recently been added for continuous chat. But they are very unstable... The last few days I have been getting this error more and more often, which makes my ass burn with a bright flame 😞:

return unexpected http status code: 403(Forbidden)`

Error after docker run

[2023-09-28 10:06:00.164][thread 31][startSession][main.cpp:122][info] assets_path: [/chat/assets]
[2023-09-28 10:06:00.166][thread 31][startSession][main.cpp:134][info] async_read: bad method

Please help

Deployment on server

I need to deploy the repo on my server for customer use and I have used xtekky g4f but after sometime the url starts to get rejected is it possible if I can deploy it and it doesn't runs into any issue like that?

Building a docker image using compose.yml prompts the following error

Building a docker image using compose.yml prompts the following error
compose.yml

version: "3.9"
services:
  fantasypeak:
    build:
      context: .
      dockerfile: Dockerfile
    container_name: fantasypeak
    image: fantasypeak/freegpt:latest
    ports:
      - "8858:8858"
    restart: always
    environment:
      - TZ=Asia/Shanghai
      - HTTP_PROXY=http://localhost
      - CHAT_PATH=/chat

Step 10/16 : ADD bin /app/bin
ADD failed: file not found in build context or excluded by .dockerignore: stat bin: file does not exist
ERROR: Service 'fantasypeak' failed to build : Build failed.

There is also no bin folder in the code

docker error

[2023-08-30 08:59:38.104][thread 7][main][main.cpp:289][info] server start accept at 0.0.0.0:8858 ...

[2023-08-30 08:59:44.568][thread 9][startSession][main.cpp:213][error] bad_request: [/]

How to run in Huggingface?

Huggingface.co is website which provides free cloud server of 16gb Ram to work on any AI projects. You can pay and get more resources to run.

But, can I run this program on HuggingFace.

Please reply!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.