本文主要是介绍大模型应用实战3——开源大模型(以Qwen为例)实现多论对话功能,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
对于国内用户来说,一个比较稳定的下载和部署开源大模型的方法就是使用ModelScope的SDK进行下载,然后再Transformer库进行调用。在代码环境中,ollama则提供了openai API风格的大模型调用方法。在开启ollama服务情况下,我们只需要进一步在代码环境中安装openai库即可完成调用。目前都是用openai风格的api。
!pip install openai
from openai import OpenAI
client = OpenAI(
base_url='http://localhost:11434/v1/',
api_key='ollama', # API key is required but ignored for local model
) #实例化客户端
chat_completion = client.chat.completions.create(
messages=[
{'role': 'user','content': '你好',}
],
model='qwen:1.8b',
) #发第一句话
看结果:chat_completion.choices[0]
Choice(finish_reason='stop', index=0, logprobs=None, message=ChatCompletionMessage(content='你好!有什么我可以帮助你的吗?例如,你可以询问关于某个特定主题的信息或者提供一个问题或主题以供讨论。我期待着听到你的提问并为你提供相关信息。\\n', role='assistant', function_call=None, tool_calls=None))
由此,我们可编写一个多轮对话机器人
def run_chat_session():
# 初始化客户端
client = OpenAI(
base_url='http://localhost:11434/v1/',
api_key='ollama', # API key is required but ignored for local model
)
# 初始化对话历史
chat_history = []
# 启动对话循环
while True:
# 获取用户输入
user_input = input(\ 你: \ )
# 检查是否退出对话
if user_input.lower() == 'exit':
print(\ 退出对话。\ )
break
# 更新对话历史
chat_history.append({'role': 'user', 'content': user_input})
# 调用模型获取回答
try:
chat_completion = client.chat.completions.create(
messages=chat_history,
model='qwen:1.8b',
)
# 获取最新回答,适当修改以适应对象属性
model_response = chat_completion.choices[0].message.content
print(\ AI: \ , model_response)
# 更新对话历史
chat_history.append({'role': 'assistant', 'content': model_response})
except Exception as e:
print(\ 发生错误:\ , e)
break
]
},
这篇关于大模型应用实战3——开源大模型(以Qwen为例)实现多论对话功能的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!