From fc96b462a3d61c5f2a0b89b6ef339dab05f840e7 Mon Sep 17 00:00:00 2001 From: Tobias Weise Date: Mon, 2 Sep 2024 16:35:15 +0200 Subject: [PATCH] trying to install amd support --- backend/Dockerfile | 70 ++++++- backend/amdgpu-install_6.1.60103-1_all.deb | Bin 0 -> 16948 bytes backend/app.py | 13 +- backend/lib/elastictools.py | 8 - backend/lib/mail.py | 1 - backend/lib/webbot.py | 2 - backend/main.py | 218 ++++++++++++--------- backend/public/index.html | 12 +- backend/requirements.txt | 42 ++-- deployment/docker-compose.yml | 5 + 10 files changed, 231 insertions(+), 140 deletions(-) create mode 100644 backend/amdgpu-install_6.1.60103-1_all.deb diff --git a/backend/Dockerfile b/backend/Dockerfile index 5525a4f..25081a5 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -1,28 +1,88 @@ -FROM python:3.12 +#FROM python:3.12 +FROM ubuntu RUN apt-get update -RUN apt-get install -y firefox-esr +RUN apt-get install -y python3 +RUN apt-get install -y python3-pip + + +#on debian: +#RUN apt-get install -y firefox-esr +RUN apt-get install -y firefox + RUN apt-get install -y ffmpeg RUN apt-get install -y espeak RUN apt-get install -y flite +#COPY "amdgpu-install_6.1.60103-1_all.deb" "amdgpu-install_6.1.60103-1_all.deb" +#RUN dpkg -i "amdgpu-install_6.1.60103-1_all.deb" +#RUN amdgpu-install -y +#RUN apt-get -y install rocm-device-libs + + +#install "apt-add-repository" command: +RUN apt-get -y install software-properties-common dirmngr apt-transport-https lsb-release ca-certificates +RUN apt-add-repository -r ppa:graphics-drivers/ppa +RUN add-apt-repository ppa:oibaf/graphics-drivers + + +#RUN apt install hipsolver rocm-gdb -y + +#RUN apt-get -y install wget +#RUN apt-get update -y --allow-unauthenticated +#RUN wget https://repo.radeon.com/amdgpu-install/6.1.1/ubuntu/jammy/amdgpu-install_6.1.60101-1_all.deb +#RUN apt-get install ./amdgpu-install_6.1.60101-1_all.deb -y +#RUN amdgpu-install --usecase=rocm + + +#RUN wget https://repo.radeon.com/amdgpu-install/6.1.1/ubuntu/jammy/amdgpu-install_6.1.60101-1_all.deb +#RUN apt install ./amdgpu-install_6.1.60101-1_all.deb -y +#RUN amdgpu-install --usecase=graphics,rocm -y +#RUN usermod -a -G render,video $LOGNAME + + +#RUN wget https://repo.radeon.com/amdgpu-install/6.1.1/ubuntu/jammy/amdgpu-install_6.1.60101-1_all.deb +#RUN apt install ./amdgpu-install_6.1.60101-1_all.deb -y +#RUN amdgpu-install --usecase=graphics,rocm -y + + +#RUN echo "deb http://deb.debian.org/debian/ bookworm main contrib non-free-firmware" > /etc/apt/sources.list +#RUN echo "deb http://deb.debian.org/debian/ bookworm main contrib non-free" > /etc/apt/sources.list + +#RUN apt-add-repository contrib +#RUN apt-add-repository non-free +#RUN apt update -y + +#RUN apt install nvidia-driver -y +#RUN apt-get install firmware-amd-graphics libgl1-mesa-dri libglx-mesa0 mesa-vulkan-drivers xserver-xorg-video-all -y + +RUN apt-get update -y --allow-unauthenticated +RUN apt-get upgrade -y --allow-unauthenticated +RUN apt-get autoremove -y +RUN apt-get autoclean -y + #RUN curl https://ollama.ai/install.sh | sh #RUN ollama run llama2 WORKDIR /code COPY requirements.txt /code/requirements.txt #RUN pip3 install --no-cache-dir --upgrade -r requirements.txt -RUN pip3 install --no-cache-dir -r requirements.txt + +RUN pip3 install --no-cache-dir -r requirements.txt --break-system-packages RUN pip3 freeze > current_requirements.txt COPY . . ENTRYPOINT ["python3", "/code/app.py"] -#ENTRYPOINT ["fastapi", "run", "main.py", "--port", "8000"] #gunicorn -w 4 -b 0.0.0.0 'hello:create_app()' #ENTRYPOINT ["gunicorn", "-w", "1", "-b", "0.0.0.0", "app:create_app()"] - #ENTRYPOINT ["gunicorn", "-w", "1", "-b", "0.0.0.0:5000", "app:create_app()"] #gunicorn app:app --worker-class eventlet -w 1 --bind 0.0.0.0:5000 --reload + +#ENTRYPOINT ["fastapi", "run", "main.py", "--port", "8000"] + +#ENTRYPOINT ["uvicorn", "main:app", "--port", "8000", "--host", "0.0.0.0"] + + diff --git a/backend/amdgpu-install_6.1.60103-1_all.deb b/backend/amdgpu-install_6.1.60103-1_all.deb new file mode 100644 index 0000000000000000000000000000000000000000..7c0b124cf5016612c623b047d1fa950c05121436 GIT binary patch literal 16948 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 list: - with Bot() as bot: - vars_ = { - "page": 1, - "filter.industry%5B%5D": 90000, - "filter.type%5B%5D": "FULL_TIME", - "filter.level%5B%5D": 2, - "location": location, - "radius": radius - } - start_url = "https://www.xing.com/jobs/search?" + "&".join([k + "=" + str(v) for k, v in vars_.items()]) - - - def kill_cookie_questions(): - bot.click_id("consent-accept-button") - - - def next_page(): - nav = bot.get_elements_by_tag_name("nav")[1] - next_site_link = get_elements_by_tag_name(nav, "a")[-1] - bot.click(next_site_link) - - def get_nr_pages(): - nav = bot.get_elements_by_tag_name("nav")[1] - return int(get_elements_by_tag_name(nav, "a")[-2].text) - - def get_items(): - rs = [] - for article in bot.get_elements_by_tag_name("article"): - rs.append( get_children(article)[0].get_attribute("href") ) - return rs - - return collect_pagination_items(bot, start_url, next_page, get_nr_pages, get_items, kill_cookie_questions) - - - - - -""" -pwd = "neo4j2" -proto = "bolt" -host = "192.168.99.101" - -driver = GraphDatabase.driver("%s://%s:7687" % (proto, host), auth=("neo4j", pwd), encrypted=False) - -def add_friend(tx, name, friend_name): - tx.run("MERGE (a:Person {name: $name}) " - "MERGE (a)-[:KNOWS]->(friend:Person {name: $friend_name})", - name=name, friend_name=friend_name) - -def print_friends(tx, name): - for record in tx.run("MATCH (a:Person)-[:KNOWS]->(friend) WHERE a.name = $name " - "RETURN friend.name ORDER BY friend.name", name=name): - print(record["friend.name"]) - -with driver.session() as session: - session.write_transaction(add_friend, "Arthur", "Guinevere") - session.write_transaction(add_friend, "Arthur", "Lancelot") - session.write_transaction(add_friend, "Arthur", "Merlin") - session.read_transaction(print_friends, "Arthur") - -driver.close() -""" - - @app.post("/search") def job_search(js: JobSearch): - #https://berlinstartupjobs.com/?s=python&page=3 location = "Berlin" radius = 50 - with Bot() as bot: - vars_ = { - "page": 1, - "filter.industry%5B%5D": 90000, - "filter.type%5B%5D": "FULL_TIME", - "filter.level%5B%5D": 2, - "location": location, - "radius": radius - } - start_url = "https://www.xing.com/jobs/search?" + "&".join([k + "=" + str(v) for k, v in vars_.items()]) - - bot.set_url(start_url) - return bot.get_page_content() - - @app.get("/") diff --git a/backend/public/index.html b/backend/public/index.html index fb7b440..32dbe0a 100644 --- a/backend/public/index.html +++ b/backend/public/index.html @@ -182,6 +182,8 @@ +
+
@@ -270,11 +272,13 @@ +
+ + +
- -
diff --git a/backend/requirements.txt b/backend/requirements.txt index 60714c6..45091a1 100644 --- a/backend/requirements.txt +++ b/backend/requirements.txt @@ -1,37 +1,39 @@ webdriver_manager -requests -selenium +requests==2.32.3 +selenium==4.23.1 bs4 -elasticsearch -elasticsearch-dsl +elasticsearch==8.15.0 +elasticsearch-dsl==8.15.1 -ollama -langchain -langchain-community +ollama==0.3.1 +langchain==0.2.14 +langchain-community==0.2.12 langchain_ollama -langchain-elasticsearch +langchain-elasticsearch==0.2.2 -pydantic +pydantic==2.8.2 + +uvicorn +fastapi==0.112.2 +fastapi-socketio -fastapi - -gunicorn -Werkzeug +gunicorn==23.0.0 +Werkzeug==3.0.4 flask -Flask-SocketIO -flask-openapi3 +Flask-SocketIO==5.3.6 +flask-openapi3==3.1.3 -minio +minio==7.2.8 -python-logging-loki +python-logging-loki==0.3.1 pyjwt -cryptography +#cryptography==43.0.0 -neo4j +neo4j==5.23.1 -pyttsx3 +pyttsx3==2.91 diff --git a/deployment/docker-compose.yml b/deployment/docker-compose.yml index faa512b..09a14e9 100644 --- a/deployment/docker-compose.yml +++ b/deployment/docker-compose.yml @@ -70,6 +70,11 @@ services: networks: - llm_network #command: "ollama pull llama2" + devices: + #- /dev/dri/renderD128:/dev/dri/renderD128 + #- /dev/fdk + - /dev/dri + #ollama-webui: # container_name: ${APP_PREFIX}_ollama-webui