使用
大模型下载
随机下载一款大模型用于尝试,作者尝试的是codegemma-7b-it该大模型,具体每一款大模型简单介绍请查看【Anaconda】AI Navigator中大模型简单介绍-CSDN博客
聊天对话
下载完成后点击New Chat即可对话聊天
搭建本机大模型
启动大模型服务器
设置ip地质,以及端口号,由于作者电脑的8080端口被占用,所以换成了8088,选择刚下载好的大模型,点击Start
调用服务器代码
#使 Python 能够向 API 服务器发出 HTTP 请求并接收响应。
import requests
#指定的服务器地址和服务器端口
base_url = 'http://localhost:8088'
#验证服务器是否正常运行。此函数向终端节点发送 GET 请求,并返回一个 JSON 响应,告知您服务器的状态。
def get_server_health():
response = requests.get(f'{base_url}/health')
return response.json()
#此函数将用户输入发送到加载到 API 服务器中的模型,并接收生成的响应。
def post_completion(context, user_input):
prompt = f"{context}\nUser: {user_input}\nAssistant:"
#用于控制 AI 模型如何根据用户的输入生成响应。这些参数指示模型在完成过程中的行为。这将转换为 JSON 并作为请求正文发送。
data = {
'prompt': prompt,
'temperature': 0.8,
'top_k': 35,
'top_p': 0.95,
'n_predict': 400,
'stop': ["</s>", "Assistant:", "User:"]
}
headers = {'Content-Type': 'application/json'}
response = requests.post(f'{base_url}/completion', json=data, headers=headers)
if response.status_code == 200:
return response.json()['content'].strip()
else:
return "处理请求时出错。请再试一次。"
#每次交互后,您需要更新对话的上下文,以帮助模型生成连贯的对话。此函数通过附加最新的用户输入和助手的响应来更新context的值,从而使模型保持参与对话
def update_context(context, user_input, assistant_response):
return f"{context}\nUser: {user_input}\nAssistant: {assistant_response}"
def main():
context = "你是一个友好的人工智能助手,旨在提供有用、简洁和准确的代码信息。"
#获取服务器状态
health = get_server_health()
print('服务器健康:', health)
if health.get('status') == 'ok':
while True:
user_input = input("输入提示符或键入“exit”退出:")
if user_input.lower() == 'exit':
break
#人工智能回复信息
assistant_response = post_completion(context, user_input)
print('助理:', assistant_response)
#组合我们之前的聊天内容
context = update_context(context, user_input, assistant_response)
else:
print("服务器尚未准备好接受请求。")
if __name__ == "__main__":
main()
响应结果
参考文档
Anaconda AI Navigator 入门 — Anaconda documentation
API 服务器教程 — Anaconda documentation