简单入门python使用pycharm调用ollama

前提:pycharm中执行窗口安装

streamlit 

pip install streamlit -i https://pypi.tuna.tsinghua.edu.cn/simple

ollama 

pip install ollama -i https://mirrors.aliyun.com/pypi/simple/

且ollama运行且已经安装qwen,ds等大模型

基础使用

import streamlit as st
from numpy.ma.core import maximum_fill_value

st.title('标题')
st.divider()
# 设置用户名
user_name=st.text_input(label='请输入用户名',max_chars=10,key='username')
# 设置密码
password=st.text_input(label='请输入密码',max_chars=10,key='password',type='password')
# 设置年龄
age=st.number_input(label='请输入年龄',min_value=0,max_value=100,step=1,value=10,key='age')
flag = st.button(label='确定提交')
if flag:
    st.success('用户点击了提交')
    print(f'{user_name},{password},{age},{flag}')

模拟人机搭建对话框

import streamlit as st
from numpy.ma.core import maximum_fill_value

st.title('标题')
st.divider()
# 机器人默认发送一句话
st.chat_message('assistant').write('你好')
# 用户输入
user_content=st.chat_input('请输入你的问题')
if user_content:
    st.chat_message('user').write(user_content)
    #模拟自动回复功能
    assistant_content='我是人机'
    st.chat_message('assistant').write(assistant_content)

加入存储器保存多轮对话

import streamlit as st
from numpy.ma.core import maximum_fill_value

st.title('标题')
st.divider()
# 初始化存储器
if 'messages' not in st.session_state:
    # 说明不再这里边,定义一个列表存储数据
    st.session_state['messages'] = []
    st.session_state['messages'].append({'role':'assistant','messages':'你好'})
# ==================================================================
# 遍历打印消息存储器将每一条消息都输出到页面中
for message_dict in st.session_state['messages']:
#     输出到页面
    st.chat_message(message_dict['role']).write(message_dict['messages'])

# 用户输入
user_content=st.chat_input('请输入你的问题')
if user_content:
    # 如果输入了将内容填充到机器人聊天窗口
    st.chat_message('user').write(user_content)
    #将输入的内容保存到消息存储器里
    st.session_state['messages'].append({'role':'user','messages':user_content})
    #模拟自动回复功能
    assistant_content='我是人机'
    st.chat_message('assistant').write(assistant_content)
    #将机器人相应的数据保存到消息存储器
    st.session_state['messages'].append({'role':'assistant','messages':assistant_content})

调用ollama

import streamlit as st
import ollama #确保启动ollama启动
#构建ollama客户端
client = ollama.Client(host='http://127.0.0.1:11434')
# 通过客户端操作ollama发起聊天
response = client.chat(model='deepseek-r1:1.5b',messages=[{'role':'user','content':'你好'}])
#获取结果
# content=response['message']['content']=
content=response.messages.content
print(content)

最终方案

import streamlit as st
import ollama #确保启动ollama启动
from fontTools.misc.cython import returns
from lief import exception


def chat_message(prompt):
    try:
        #构建ollama客户端
        client = ollama.Client(host='http://127.0.0.1:11434')
        # 通过客户端操作ollama发起聊天
        response = client.chat(model='deepseek-r1:1.5b',messages=[{'role':'user','content':prompt}])
        #获取结果
        # content=response['message']['content']=
        content=response.message.content
        return content
    except exception as e:
        print(e)
        return "服务器繁忙"
# # 程序的主要入口
# if __name__ == '__main__':
#     print(chat_message("nihao"))
st.title('标题')
st.divider()
# 初始化存储器
if 'messages' not in st.session_state:
    # 说明不再这里边,定义一个列表存储数据
    st.session_state['messages'] = []
    st.session_state['messages'].append({'role':'assistant','message':'你好'})
# ==================================================================
# 遍历打印消息存储器将每一条消息都输出到页面中
for message_dict in st.session_state['messages']:
#     输出到页面
    st.chat_message(message_dict['role']).write(message_dict['message'])

# 用户输入
user_content=st.chat_input('请输入你的问题')
if user_content:
    # 如果输入了将内容填充到机器人聊天窗口
    st.chat_message('user').write(user_content)
    #将输入的内容保存到消息存储器里
    st.session_state['messages'].append({'role':'user','message':user_content})
    #回复
    assistant_content=chat_message(user_content)
    #吧机器人回复的内容填充到聊天窗口
    st.chat_message('assistant').write(assistant_content)
    #将机器人相应的数据保存到消息存储器
    st.session_state['messages'].append({'role':'assistant','message':assistant_content})

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐