使用gradio和ollama实现LLM对话功能

关键字:gradio、ollama、chatinterface、对话、llm

时间:2024年07月

准备

1、ollama已经安装成功

2、qwen2:7b模型已经下载

安装依赖

$ pip install ollama
$ pip install gradio

代码

import gradio as gr
from ollama import Client

client = Client(host="192.168.1.100:11434")

def chat_fn(message, history):
	messages = []
	msg = {'role': 'system', 'content': 'You are a helpful assistant.'}
	messages.append(msg)
	for m in history:
		msg = {'role': 'assistant', 'content': m[0]}
		messages.append(msg)
		msg = {'role': 'user', 'content': m[1]}
		messages.append(msg)
	msg = {'role': 'user', 'content': message}
	messages.append(msg)

	response = client.chat(model='qwen2:7b', messages=messages, stream=True)

	m = ''
	for chunk in response:
		m += chunk['message']['content']
		yield m
		if chunk['done'] == True:
			print("\n")
			print(f"total_duration       : {chunk['total_duration']/1000000000:.6f} s")
			print(f"load_duration        : {chunk['load_duration']/1000000000:.6f} s")
			print(f"prompt_eval_count    : {chunk['prompt_eval_count']} Tokens")
			print(f"prompt_eval_duration : {chunk['prompt_eval_duration']/1000000000:.6f} s")
			print(f"eval_count           : {chunk['eval_count']} Tokens")
			print(f"eval_duration        : {chunk['eval_duration']/1000000000:.6f} s")


gr.ChatInterface(fn=chat_fn).launch()

编辑于 2024-07-09 17:34・IP 属地重庆