提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

网络基础知识

HTTP协议

概念:Hyper Text Transfer Protocol,超文本传输协议,规定了客户端和服务器之间数据传输的规则。(只有在请求及响应中都遵循了统一的规则,服务端才能读懂客户端发送来的请求,客户端才能解析服务端响应的结果)

HTTP协议-请求数据格式

请求行(请求方式、资源路径、协议)
POST /api/courses HTTP/1.1
请求头(HTTP头部字段)

格式key: value 键值对形式。

Accept: application/json, text/plain, */*
Accept-Encoding: gzip, deflate, br, zstd
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6
Connection: keep-alive
Content-Length: 139
Content-Type: application/json
Host: localhost:90
Origin: http://localhost:90
Referer: http://localhost:90/resource/course
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/143.0.0.0
请求体(JSON数据)

定义:请求参数部分,GET方式没有,POST可以有。

{"phone":"18808088080","channel":1,"name":"虎咆","gender":1,"age":"32"}

请求方式说明

  • GET:请求参数在请求行中,没有请求体。例如:/api/courses?name=Python&status=1。GET请求的参数大小在浏览器中是有限制的。
  • POST:请求参数在请求体中,POST请求大小是没有限制的。

HTTP协议-响应数据格式

响应行
  • 定义:包含协议版本、状态码。
  • 示例HTTP/1.1 200
响应头
  • 格式key: value 键值对形式。
  • 示例字段
    • Servernginx/1.24.0
    • DateTue, 16 Dec 2025 12:38:08 GMT
    • Content-Typeapplication/json
    • Transfer-Encodingchunked
    • Connectionkeep-alive
响应体
  • 定义:存放服务端响应的数据。
  • 示例 (JSON格式):json
    {"code": 1, "msg": "success", "data": null}
常见HTTP状态码
  • 200:客户端请求成功。
  • 400:请求参数错误。
  • 404:请求资源不存在,URL输入有误,或者网站资源被删除了。
  • 500:服务器发生了不可预期的错误。

一、ollama

Linux部署pycharm

ollama基础python代码

二、Streamlit

基础API使用

代码如下(示例):

循环使用:默认使用无限循环(下有聊天界面和代码)

import time
import streamlit as st
#while True:
st.title("st教程")
st.write("黑马")
st.divider ()
name=st.chat_input ("请输入名字")
if name:
    st.write ("你好:", name)
with st.spinner ("正在加载中..."):
    time.sleep(5)
    st.write("完成")
#消息容器
st.chat_message("user").markdown("你是谁")
st.chat_message("assistant").markdown("我是聊天机器人")

聊天界面:

streamlit本质是对用户代码的无限循环,可以使用session_state保存变量状态。

ollama和streamlit联合开发

代码如下(示例):

import time
import streamlit as st
import ollama
# 初始化
if 'messages' not in st.session_state:
    st.session_state.messages = []

st.title("简单聊天机器人")
st.divider ()
client=ollama.Client(host="http://localhost:11434")
# 1. 获取输入
prompt = st.chat_input("请输入你的问题:")

if prompt:
    # 2. 保存用户消息到历史
    st.session_state.messages.append({"role": "user", "content": prompt})
    for message in st.session_state.messages:
        st.chat_message(message["role"]).markdown(message["content"])
    # 3. 模拟 AI 思考
    with st.spinner("思考中..."):
        response =client.chat("deepseek-r1:8b", [{"role":"user","content": prompt}])
        st.session_state.messages.append({"role": "assistant", "content": response['message']['content']})

    # 4. 显示 AI 消息 (只显示当前的)
    st.chat_message("assistant").markdown(response['message']['content'])


注意:1.response是嵌套字典,要取message和content对应的内容2.记得打开ollama

三、Lanchain(仅入门,了解流程即可,后续深入学习)

LangChain框架介绍

LangChain 是一个用于构建和管理基于语言模型(Language Models, LM)的应用程序的框架。它提供了一系列工具和组件,帮助开发者更高效地构建、训练、部署和管理语言模型应用。网址:https://python.langchain.com/docs

LangChain相关包安装

  • langchain:主要用于构建和管理基于语言模型的应用程序,提供从模型管理到应用开发的一站式解决方案。
  • langchain_community:是 langchain 的社区版,包含社区贡献的额外功能和插件,提供更多扩展性的工具。
  • dashscope:主要用于构建和管理数据科学和机器学习应用,提供丰富的数据可视化和模型部署工具。
pip install langchain -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install langchain-community -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install dashscope -i https://pypi.tuna.tsinghua.edu.cn/simple

LangChain主要组件

  • Prompts
    提示,包括提示管理、提示优化和提示序列化

  • Models
    模型,各种类型的模型和模型集成,比如GPT-4

  • Memory
    记忆,用来保存和模型交互时的上下文状态

  • Indexes
    索引,用来结构化文档,以便和模型交互

  • Chains
    链,一系列对各种组件的调用

  • Agents
    代理,决定模型采取哪些行动,执行并且观察流程,直到完成为止

阿里云百炼平台APIkey

官网地址:https://bailian.console.aliyun.com

代码如下:

from langchain.chains import ConversationChain
from langchain.memory import ConversationBufferMemory
from langchain_community.llms import Tongyi

# 创建一个内存记忆对象
memory = ConversationBufferMemory(return_message=True)

def get_response(prompt, api_key):
    model = Tongyi(model="qwen-plus", api_key=api_key)
    chain = ConversationChain(llm=model, memory=memory)

    # 发送用户的请求
    response = chain.invoke({"input": prompt})
    return response["response"]

if __name__ == '__main__':
    print(get_response(prompt="请用Python输出1-10", api_key="yourAPI"))

即可直接在python运行输出结果。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐