AI资讯
掌握人工智能AI动态,领略未来风采!
看到CodeGPT支持ollama,于是就想尝试用Ollama + CodeGPT构建私有环境的开发助手。先在VS Code上安装CodeGPT,发现果然有ollama选项。
添加图片注释,不超过 140 字(可选)
添加图片注释,不超过 140 字(可选)
可是看了文档:Ollama | CodeGPT,又亲自测试了发现只能调用local的ollama。支持的模型包括:
gemma.7b
gemma:2b
llama2
codellama
command-r
phi
mistral
mixtral
deepseek-coder
starcoder2
dolphinecoder
dolphin-mixtral
starling-lm
llama2-uncensored
因为我本机GPU是MX250,性能很差,而且我已经在GPU服务器上部署了ollama,具体参考:
北方的郎:Linux上部署Ollama,启动Mistral-7B及Gemma-7B服务,测试效果
所以希望能用ollama服务,于是我又看了一下其他链接,想看看能否用仿openai服务进行接入,可是发现其他大部分的选项都只有key的输入,url都是默认的。不过有个custom选项可以输入url
添加图片注释,不超过 140 字(可选)
不过只有url,而不论ollama、vLLM都需要输入model,试了一下把模型放在url里面,用curl试的时候就报错。于是想到了用代理。用python+flask写了一个简单的程序:
from flask import Flask, request, jsonifyimport jsonimport requests app = Flask(__name__)@app.route('/proxy/<model>', methods=['POST'])def proxy(model): url = "http://127.0.0.1:11434" message = request.json.get('message') print(message) print(model) if message: ollama_url = f"{url}/api/chat" print(ollama_url) payload = { "model": model, "messages": [{"role": "user", "content": message}] } response = requests.post(ollama_url, json=payload) print(response) response_content = "" for line in response.iter_lines(): if line: response_content += json.loads(line)["message"]["content"] print(response_content) #return jsonify({"choices": [{"text": response_content}]}) return jsonify({"choices": [{"message": {"content": response_content}}]}) return jsonify({"error": "Missing message parameter"}), 400if __name__ == '__main__': app.run(debug=True, port=5050, host='0.0.0.0')
用程序调用:
import requestsimport jsondef send_message_to_ollama(message, port=11434): url = "http://172.30.0.99:5050/proxy/codegemma:7b-instruct-q6_K" payload = { "message": message } response = requests.post(url, json=payload) return response
返回类似openai api的返回。可是用在CodeGPT上还是连接失败。
添加图片注释,不超过 140 字(可选)
暂时折腾到这了。先用gpt-3.5-turbo,后续再看怎么模拟服务。
添加图片注释,不超过 140 字(可选)
还是准备试一下本机ollama的效果,windows安装本机ollama直接下载安装包即可:
添加图片注释,不超过 140 字(可选)
地址:
https://github.com/ollama/ollama?tab=readme-ov-file, 下载的文件:
添加图片注释,不超过 140 字(可选)
安装后打开powershell,直接就可以运行ollama了,开始下载codellama。
添加图片注释,不超过 140 字(可选)
本机为Thinpad T490,用ollama跑7B, int4的codellama,肯定都是跑在CPU上的,正好看看ollama在CPU上的加速效果。下载完后,问了几个问题,说实话速度比想象得快:
添加图片注释,不超过 140 字(可选)
打开vs code,配置CodeGPT:
添加图片注释,不超过 140 字(可选)
测试效果:
添加图片注释,不超过 140 字(可选)
代码效果不错,就是速度还是稍微有点慢,不过也不是不可忍受。看了一下nvidia-smi:
添加图片注释,不超过 140 字(可选)
果然都是跑在了CPU上。不过我这MX250不是还有2G显存嘛。用起来。
添加图片注释,不超过 140 字(可选)
ollama run gemma:2b
添加图片注释,不超过 140 字(可选)
这速度就快多了,看了一下,的确跑在了GPU上
添加图片注释,不超过 140 字(可选)
设置CodeGPT:
添加图片注释,不超过 140 字(可选)
简单代码也能写一点: