以前曾经在FreeBSD13下面安装成功Miniconda,现在准备在FreeBSD14.2下安装MiniConda python3.12 ,以便安装运行Auto-Coder。以前安装MiniConda文档参考:
安装Miniconda@FreeBSD13_miniconda feiyaozhuangzai root shang-CSDN博客
开始安装
先走的弯路(可略过)
尝试安装linux-miniconda-installer 再安装MiniConda
sudo pkg install linux-miniconda-installer
安装上了这两个包
auto-admin: 0.8.1
linux-miniconda-installer: 0.1.0_2
发现linux-miniconda-installer还是那个需要python3.8环境的老包,不能用,放弃这个方法。
FreeBSD里安装MiniConda常规操作
到清华下载安装包
地址:Index of /anaconda/miniconda/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py312_25.3.1-1-Linux-x86_64.sh
设置FreeBSD平台对Linux的支持
以下指令需要用root账户操作
kldload linux64
sysrc linux_enable="YES"
service linux start
给下载的安装包设置执行权限
chmod 755 download/Miniconda3-py312_25.3.1-1-Linux-x86_64.sh
执行安装
./download/Miniconda3-py312_25.3.1-1-Linux-x86_64.sh
有两处提示,说环境不太符合,不用管它,回答Yes即可。其它设置按照提示操作即可。
也尝试过使用sh进行安装,但是有报错,所以不要用下面这种方法安装:
# -u是覆盖安装
sh download/Miniconda3-py312_25.3.1-1-Linux-x86_64.sh -u
FreeBSD下手动Linux兼容模式安装
如果已经配置好FreeBSD兼容Linux模式,也就是已经在/compat/linux 目录放置了linux系统,那么还可以用linux里的sh命令来启动安装:
# -u是覆盖安装
/compat/linux/bin/bash download/Miniconda3-py312_25.3.1-1-Linux-x86_64.sh -u
激活环境并安装Auto-Coder
比如安装到fbpy312目录
激活
source fbpy312/bin/activate.csh
安装Auto-Coder
因为在FreeBSD系统的python里无法安装ray,导致无法安装Auto-Coder。所以才用安装MiniConda的方法来达到可以安装Auto-Coder的目的。
pip install auto-coder
运行Auto-Coder
~/autowork]$ auto-coder.chat
在FreeBSD下运行Auto-Coder成功!这样我们的目的也就实现了!
测试Auto-Coder
让Auto-Coder生成项目
prompt1
使用 byzerllm 以及 fastapi 库开发一个Google 翻译API, 开发完
成后,给出启动服务的命令以及测试用的 curl 指令, 其中可用模型名称为 v3_chat。
AI返回
│ 已完成基于 byzerllm 和 fastapi 的 Google 翻译 API 开发。项目包含以下内容: │
│ │
│ 1 requirements.txt:包含依赖 fastapi、uvicorn、byzerllm。 │
│ 2 main.py:实现 /translate 接口,调用 v3_chat 模型进行翻译。 │
│ 3 README.txt:给出服务启动命令和 curl 测试指令。 │
│ │
│ 使用方法: │
│ │
│ • 安装依赖:pip install -r requirements.txt │
│ • 启动服务:uvicorn main:app --host 0.0.0.0 --port 8000 │
│ • 测试接口(示例,将中文翻译为英文): curl -X POST │
│ "http://localhost:8000/translate" -H "Content-Type: application/json" -d │
│ '{"text": "今天天气很好。", "source_lang": "中文", "target_lang": "英文"}' │
│ │
│ 服务已具备完整功能,可直接部署和调用。
因为没有 v3_chat这个模型,所以测试失败。
prompt2
使用 g4f 以及 fastapi 库开发一个Google 翻译API, 开发完
成后,给出启动服务的命令以及测试用的 curl 指令, 其中可用模型名称为 gpt-4o。
这个任务完成的很好
│ Google 翻译 API 已基于 g4f(gpt-4o)与 FastAPI 实现。 │
│ │
│ 【服务启动命令】 │
│ │
│ │
│ uvicorn main:app --host 0.0.0.0 --port 8000 │
│ │
│ │
│ 【示例 curl 测试命令】 将英文 "Hello, how are you?" 从英文翻译为中文: │
│ │
│ │
│ curl -X POST "http://localhost:8000/translate" \ │
│ -H "Content-Type: application/json" \ │
│ -d '{"text": "Hello, how are you?", "source_lang": "English", "target_lang": │
│ "Chinese"}' │
│ │
│ │
│ 【说明】 │
│ │
│ • POST /translate,参数为 │
│ text(待翻译文本)、source_lang(源语言)、target_lang(目标语言)。 │
│ • 返回格式为:{"result": "翻译内容"} │
│ • 可根据需要更换 source_lang、target_lang 实现不同语言互译。 │
测试成功
先启动了服务:
uvicorn main:app --host 0.0.0.0 --port 8000
然后使用curl进行测试
curl -X POST "http://localhost:8000/translate" -H "Content-Type: application/json" -d '{"text": "Hello, how are you?", "source_lang": "English", "target_lang": "Chinese"}'
测试输出:
curl -X POST "http://localhost:8000/translate" -H "Content-Type: application/json" -d '{"text": "Hello, how are you?", "source_lang": "English", "target_lang": "Chinese"}'
{"result":"你好,你好吗?"}
非常好,果然翻译成功了!
而上面的这个项目,只是耗费了Auto-Coder几分钟时间,真是又快又好啊!
调试
报错ImportError: cannot import name 'ChatModel' from 'byzerllm'
self.loaded_app = import_from_string(self.app)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/skywalk/minipy312/lib/python3.12/site-packages/uvicorn/importer.py", line 19, in import_from_string
module = importlib.import_module(module_str)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/skywalk/minipy312/lib/python3.12/importlib/__init__.py", line 90, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 999, in exec_module
File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
File "/usr/home/skywalk/autowork/main.py", line 4, in <module>
from byzerllm import ChatModel
ImportError: cannot import name 'ChatModel' from 'byzerllm' (/home/skywalk/minipy312/lib/python3.12/site-packages/byzerllm/__init__.py)
第一次生成的项目报错,后来是导入了byzer-llm友好库,才完成的,导入指令
/lib /add byzer-llm
具体参考: