diff --git a/usage.md b/usage.md index 641c18c..6d43cdc 100644 --- a/usage.md +++ b/usage.md @@ -25,8 +25,23 @@ macOS系统(Apple Silicon) 1. 准备环境 ```bash +# 安装Xcode并完成初始化验证 xcode-select --install +xcrun -find metal || echo "metal not found" +sudo xcode-select -s /Applications/Xcode.app/Contents/Developer +# 打开 xcode 安装 macos sdk,命令行安装不成功在图形化界面安装即可 +sudo xcodebuild -license accept +xcodebuild -runFirstLaunch +# 安装着色器的工具链 +sudo xcode-select -s /Applications/Xcode.app/Contents/Developer +xcodebuild -downloadComponent MetalToolchain +# 验证是否安装成功 +xcrun --sdk macosx --find metal +xcrun --sdk macosx --show-sdk-path +# 创建虚拟环境 micromamba create -n gptoss python=3.12 -y +micromamba activate gptoss +micromamba install pybind11 -c conda-forge -y ``` 2. 手动运行CMake构建 @@ -34,6 +49,7 @@ micromamba create -n gptoss python=3.12 -y ```bash git clone https://github.com/hotwa/openharmony-mlx.git cd openharmony-mlx + # 自动安装cmake安装 GPTOSS_BUILD_METAL=1 pip install -e ".[metal]" # 手动编译cmake安装 @@ -41,7 +57,15 @@ cd gpt_oss/metal mkdir build cd build cmake .. -DCMAKE_BUILD_TYPE=Release -DGPTOSS_BUILD_PYTHON=ON +export pybind11_DIR=$(python -c "import pybind11; print(pybind11.get_cmake_dir())") +cmake -S .. -B . \ + -DCMAKE_BUILD_TYPE=Release \ + -DGPTOSS_BUILD_PYTHON=ON \ + -DPYBIND11_FINDPYTHON=ON \ + -Dpybind11_DIR="$(python -c 'import pybind11;print(pybind11.get_cmake_dir())')" +cmake --build . --config Release --parallel make -j$(nproc) +ctest --output-on-failure ``` 3. Metal着色器编译 @@ -52,14 +76,27 @@ CMake会自动编译Metal源文件: CMakeLists.txt:16-28 4. Python扩展模块构建 CMake会创建名为_metal的Python扩展模块: +## python 安装包 + ```bash +# 手动安装 # 安装扩展模块 cp _metal.so /path/to/your/python/site-packages/gpt_oss/metal/ - # 安装Metal库文件 cp default.metallib /path/to/your/python/site-packages/gpt_oss/metal/ ``` +```bash +# 在 gpt_oss 仓库根目录(不是 metal/build) +cd /path/to/gpt_oss + +# 确保环境中 pybind11、Xcode 都就绪 +export GPTOSS_BUILD_METAL=1 +python -m pip install -e ".[metal]" # 开发模式安装(可改代码即时生效) +# 或者正式安装 +# python -m pip install ".[metal]" +``` + 5. 验证metal模块是否正确安装 ```python @@ -92,4 +129,34 @@ python -m gpt_oss.responses_api.serve --inference-backend metal --checkpoint /Vo API 地址:http://localhost:8080 密钥:无 -请求虽然是gpt-oss-120b,但是实际使用的是gpt-oss-20b。由于后台写死的是120b,所以请求使用gpt-oss-120b \ No newline at end of file +请求虽然是gpt-oss-120b,但是实际使用的是gpt-oss-20b。由于后台写死的是120b,所以请求使用gpt-oss-120b + +## codex 使用 + +```bash +vim .codex/config.toml +``` + +```toml +disable_response_storage = true +show_reasoning_content = true +model = "gpt-5-codex" + +[model_providers.local] +name = "local" +base_url = "http://100.64.0.4:8080/v1" +wire_api = "responses" +include_apply_patch_tool = false + +[profiles.oss] +model = "gpt-oss-120b" +model_provider = "local" +include_apply_patch_tool = false + +[mcp_servers.web-mcp] +url = "https://web-mcp.koyeb.app/sse/04824d01-60c3-4f20-9340-65b60d3e8344" +# 如果需要认证,可以添加 bearer_token +# bearer_token = "your-token-here" +startup_timeout_sec = 60 +tool_timeout_sec = 120 +``` \ No newline at end of file