klaude-code:你的claude code平替

Claude-Code是最近非常火的命令行代码生成工具,最近在疯狂的体验的时候,然后发现自己的钱包被疯狂的掏空。你可能不敢相信,我两年时间居然消耗了170美刀在官方API调用上,这让我觉得100美刀的会员也是非常的便宜了。

image-1752499229282

最近月之暗面推出了他们的一个开源模型K2,号称在编程上很强,并且API费用亲民:

模型 计费单位 输入价格 (缓存命中) 输入价格 (缓存未命中) 输出价格 模型上下文长度
kimi-k2-0711-preview 1M tokens 1.00元 4元 16元 131,072 tokens
claude-opus-4-0 1M tokens 15美元 75美元 200,000 tokens
claude-sonnet-4-0 1M tokens 3美元 15美元 200,000 tokens

更为离谱的是,他可以无缝衔接cluade-code,只需要运行一行代码

bash -c "$(curl -fsSL https://raw.githubusercontent.com/LLM-Red-Team/kimi-cc/refs/heads/main/install.sh)"

这个代码实际上做了下面几个事情

第一步,分析当前node版本,如果≤18,则用nvm安装新版本的nodejs

第二步,用nodejs安装npm install -g @anthropic-ai/claude-code

第三步,修改~/.claude.json,写入如下内容,跳过 Onboarding 引导流程

{ hasCompletedOnboarding: true }

第四步,在/.bashrc或/.zshrc中配置claude-code环境变量。这需要你去 https://platform.moonshot.cn/console注册账号,并创建一个API KEY

# Claude Code environment variables
export ANTHROPIC_BASE_URL=https://api.moonshot.cn/anthropic/
export ANTHROPIC_API_KEY=sk-你申请的TOKEN

你没看错,Moonshoot直接后台兼容了anthropic的接口,你根本不需要修改任何其他参数。

第五步,运行claude体验。(后续我就把kimi版本的claude称之为klaude)

我让他做了一个事情,就是开发一个网页,方便课题组调用BLAST。

image-1752499657509

然后klaude就哼哧哼哧的干了起来,全程我就是负责统一,只有中间在python环境上出错了,我干预了下,主要是告诉klaude我们有micromamba

当前环境有micromamba, 解决
Using cached https://pypi.tuna.tsinghua.edu.cn/packages/2c/d4/590ae7df5044465cc9fa2db152ae12468694d62d952b1528ecff328ef7fc/numpy-1.24.3.tar.gz (10.9 MB)
    Installing build dependencies ... done
    Getting requirements to build wheel ... error
    error: subprocess-exited-with-error
    
    × Getting requirements to build wheel did not run successfully.
    │ exit code: 1
    ╰─> [32 lines of output]
        Traceback (most recent call last):
          File "/home/xuzhougeng/micromamba/lib/python3.13/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 389, in <module>
            main()
            ~~~~^^
          File "/home/xuzhougeng/micromamba/lib/python3.13/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 373, in main
            json_out["return_val"] = hook(**hook_input["kwargs"])
                                     ~~~~^^^^^^^^^^^^^^^^^^^^^^^^
          File "/home/xuzhougeng/micromamba/lib/python3.13/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 137, in get_requires_for_build_wheel
            backend = _build_backend()
          File "/home/xuzhougeng/micromamba/lib/python3.13/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 70, in _build_backend
            obj = import_module(mod_path)
          File "/home/xuzhougeng/micromamba/lib/python3.13/importlib/__init__.py", line 88, 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 1310, in _find_and_load_unlocked
          File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
          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 1026, in exec_module
          File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
          File "/data/tmp/pip-build-env-z4k9gymq/overlay/lib/python3.13/site-packages/setuptools/__init__.py", line 16, in <module>
            import setuptools.version
          File "/data/tmp/pip-build-env-z4k9gymq/overlay/lib/python3.13/site-packages/setuptools/version.py", line 1, in <module>
            import pkg_resources
          File "/data/tmp/pip-build-env-z4k9gymq/overlay/lib/python3.13/site-packages/pkg_resources/__init__.py", line 2172, in <module>
            register_finder(pkgutil.ImpImporter, find_on_path)
                            ^^^^^^^^^^^^^^^^^^^
        AttributeError: module 'pkgutil' has no attribute 'ImpImporter'. Did you mean: 'zipimporter'?
        [end of output]
    
    note: This error originates from a subprocess, and is likely not a problem with pip.
  error: subprocess-exited-with-error

  × Getting requirements to build wheel did not run successfully.
  │ exit code: 1
  ╰─> See above for output.

  note: This error originates from a subprocess, and is likely not a problem with pip.

他也很快找到了问题所在

● 这个错误是由于Python 3.13与旧版本的numpy不兼容导致的。让我用micromamba创建一个新的环境来解决这个问题。

● Bash(micromamba create -n blast_tool python=3.10 -y)
  ⎿  Transaction                                          

       Prefix: /home/xuzhougeng/micromamba/envs/blast_tool
     … +91 lines (ctrl+r to expand)

● 现在激活新环境并安装依赖:

● Bash(micromamba activate blast_tool && pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple)
  ⎿  Error: critical libmamba Shell not initialized


     'micromamba' is running as a subprocess and can't modify the parent shell.
     Thus you must initialize your shell before using activate and deactivate.

     To initialize the current bash shell, run:
         $ eval "$(micromamba shell hook --shell bash)"
     and then activate or deactivate with:
         $ micromamba activate
     … +8 lines (ctrl+r to see all)

● 让我使用micromamba run来安装依赖:

之后项目就能运行了,开发 网页如下,有用,但是不支持上传新的基因组

image-1752499956515

所以继续开启了 klaude 指挥它干活

当前的BLAST工具应该能够自己上传基因组构建索引,并且能够存储下来方便后续使用

最后有两点感受

  1. 编程效果确实还可以,会调用工具解决问题
  2. 推理速度不太够,要等好久才能搞定一步

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×