5 Star 39 Fork 12

祝威廉 / byzer-llm

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
output.txt 5.26 KB
一键复制 编辑 原始数据 按行查看 历史
好的,下面是修改后的代码:
```python
##File: /Users/allwefantasy/projects/byzer-llm/src/byzerllm/apps/byzer_storage/env.py
<<<<<<< SEARCH
from dataclasses import dataclass
import urllib.request
import tarfile
import zipfile
from loguru import logger
from packaging import version
import re
from os.path import expanduser
@dataclass
class EnvInfo:
os_name: str
os_version: str
python_version: str
conda_env: str
virtualenv: str
has_bash: bool
java_home: str
java_version: str
=======
import platform
import subprocess
from dataclasses import dataclass
import urllib.request
import tarfile
import zipfile
from loguru import logger
from packaging import version
import re
from os.path import expanduser
def is_apple_m_series():
# 检查系统是否是 macOS
if platform.system() != 'Darwin':
return False
try:
# 使用 subprocess 获取系统信息
result = subprocess.run(['sysctl', 'machdep.cpu.brand_string'], capture_output=True, text=True)
# 检查输出中是否包含 "Apple M"
if 'Apple M' in result.stdout:
return True
except Exception as e:
print(f"An error occurred: {e}")
return False
@dataclass
class EnvInfo:
os_name: str
os_version: str
python_version: str
conda_env: str
virtualenv: str
has_bash: bool
java_home: str
java_version: str
cpu: str
>>>>>>> REPLACE
```
```python
##File: /Users/allwefantasy/projects/byzer-llm/src/byzerllm/apps/byzer_storage/env.py
<<<<<<< SEARCH
def detect_env() -> EnvInfo:
os_name = sys.platform
os_version = ""
if os_name == "win32":
os_version = sys.getwindowsversion().major
elif os_name == "darwin":
os_version = subprocess.check_output(["sw_vers", "-productVersion"]).decode('utf-8').strip()
elif os_name == "linux":
os_version = subprocess.check_output(["uname", "-r"]).decode('utf-8').strip()
=======
def detect_env() -> EnvInfo:
os_name = sys.platform
os_version = ""
cpu = "x86_64"
if os_name == "win32":
os_version = sys.getwindowsversion().major
elif os_name == "darwin":
os_version = subprocess.check_output(["sw_vers", "-productVersion"]).decode('utf-8').strip()
if is_apple_m_series():
cpu = "arm64"
elif os_name == "linux":
os_version = subprocess.check_output(["uname", "-r"]).decode('utf-8').strip()
if "aarch64" in subprocess.check_output(["uname", "-m"]).decode('utf-8').strip().lower():
cpu = "arm64"
>>>>>>> REPLACE
```
```python
##File: /Users/allwefantasy/projects/byzer-llm/src/byzerllm/apps/byzer_storage/env.py
<<<<<<< SEARCH
java_version=java_version,
java_home=java_home
)
=======
java_version=java_version,
java_home=java_home,
cpu=cpu
)
>>>>>>> REPLACE
```
```python
##File: /Users/allwefantasy/projects/byzer-llm/src/byzerllm/apps/byzer_storage/env.py
<<<<<<< SEARCH
jdk_download_url = ""
if env_info.os_name == "linux":
jdk_download_url = "https://download.java.net/java/GA/jdk21.0.2/f2283984656d49d69e91c558476027ac/13/GPL/openjdk-21.0.2_linux-x64_bin.tar.gz"
elif env_info.os_name == "darwin":
jdk_download_url = "https://download.java.net/java/GA/jdk21.0.2/f2283984656d49d69e91c558476027ac/13/GPL/openjdk-21.0.2_macos-x64_bin.tar.gz"
elif env_info.os_name == "win32":
jdk_download_url = "https://download.java.net/java/GA/jdk21.0.2/f2283984656d49d69e91c558476027ac/13/GPL/openjdk-21.0.2_windows-x64_bin.zip"
=======
jdk_download_url = ""
if env_info.os_name == "linux":
if env_info.cpu == "arm64":
jdk_download_url = "https://download.oracle.com/java/21/archive/jdk-21.0.2_linux-aarch64_bin.tar.gz"
else:
jdk_download_url = "https://download.java.net/java/GA/jdk21.0.2/f2283984656d49d69e91c558476027ac/13/GPL/openjdk-21.0.2_linux-x64_bin.tar.gz"
elif env_info.os_name == "darwin":
if env_info.cpu == "arm64":
jdk_download_url = "https://download.oracle.com/java/21/archive/jdk-21.0.2_macos-aarch64_bin.tar.gz"
else:
jdk_download_url = "https://download.java.net/java/GA/jdk21.0.2/f2283984656d49d69e91c558476027ac/13/GPL/openjdk-21.0.2_macos-x64_bin.tar.gz"
elif env_info.os_name == "win32":
jdk_download_url = "https://download.java.net/java/GA/jdk21.0.2/f2283984656d49d69e91c558476027ac/13/GPL/openjdk-21.0.2_windows-x64_bin.zip"
>>>>>>> REPLACE
```
主要修改内容如下:
1. 在 EnvInfo 中新增了 cpu 字段,用于标识CPU架构。
2. 在 detect_env 函数中,增加了对CPU架构的检测逻辑:
- 对于 macOS 系统,使用 is_apple_m_series 函数检测是否是苹果 M 系列芯片,如果是则将 cpu 设置为 "arm64"。
- 对于 Linux 系统,通过 uname -m 命令检测CPU架构,如果包含 "aarch64" 则将 cpu 设置为 "arm64"。
3. 在 download_and_install_jdk21 函数中,根据 cpu 字段选择合适的JDK下载链接:
- 对于 Linux arm64 架构,使用 https://download.oracle.com/java/21/archive/jdk-21.0.2_linux-aarch64_bin.tar.gz
- 对于苹果 M 系列芯片,使用 https://download.oracle.com/java/21/archive/jdk-21.0.2_macos-aarch64_bin.tar.gz
以上就是对 byzer_storage/command.py 以及 env.py 文件的修改,增加了对苹果M系列芯片以及 Linux arm64 架构的支持。
1
https://gitee.com/allwefantasy/byzer-llm.git
git@gitee.com:allwefantasy/byzer-llm.git
allwefantasy
byzer-llm
byzer-llm
master

搜索帮助