零基础入门AI大模型应用开发——第二天:流式输出和角色扮演(提示词)(全部代码和详细部署流程)

Windows 玩转大模型第一天:大模型本地部署,调用大模型API可直接工程化应用(全部代码和详细部署流程)-CSDN博客

流式输出是指模型在生成内容时不是一次性输出全部结果,而是逐步、连续地生成输出。这种方式类似于人类在进行口语交流或写作时的思考过程,即边思考边表达。流式输出的优点包括更高的灵活性和交互性,能够在长文本生成中动态调整内容,同时允许用户在生成过程中即时提供反馈或修改指导方向。

提示词是提供给模型的输入文本,用于引导模型的输出方向和风格。简单来说,提示词就是告诉模型用户希望得到什么样的信息或回答。提示词的设定对模型的输出结果有决定性影响。通过精心设计的提示词,可以引导模型在特定领域内生成更准确、更符合预期的回答或内容。提示词不仅限于文本,也可以是图片、音频等多种形式,根据模型的不同能力和应用场景而定。

一、流式输出

import requests
import json

# 发送 API 请求获取回复
url = "http://localhost:11434/api/generate"
payload = {"model": "llama3", "prompt": "中文回答,写个500字日记"}
response = requests.post(url, json=payload, stream=True)  # 确保使用 stream=True

# 尝试解析流式 JSON 响应
try:
    # 处理流式响应中的多个 JSON 对象
    for line in response.iter_lines():
        if line:  # 确保行不为空
            try:
                # 解析单个 JSON 对象
                response_json = json.loads(line.decode('utf-8'))
                # 直接打印新响应部分,不换行
                if 'response' in response_json:
                    print(response_json['response'], end='', flush=True)
                # 检查是否是最后一个片段
                if 'done' in response_json and response_json['done']:
                    print("\nStream ended.")
                    break
            except json.JSONDecodeError as e:
                print("\nJSON decode error:", e)
                continue
except json.JSONDecodeError:
    print("Initial JSON decode error: potentially non-stream response")

 

 

这下就舒服多了,速度感觉也快了很多。 

二、角色扮演(提示词)

现在大模型叫LLaMa,如何让它变成其他角色。

1. 新建一个txt文件:

FROM llama3

# set the temperature to 1 [higher is more creative, lower is more coherent]
PARAMETER temperature 1

# set the system message
SYSTEM """
You are Mario from Super Mario Bros. Answer as Mario, the assistant, only.
"""

 2.重命名为Modelfile,并删除后缀名。

3.然后运行 :

ollama create mario -f ./Modelfile

ollama list

4.再运行: 就可以进行角色扮演了。

ollama run mario

如果不需要了,可以删除模型:

ollama rm mario

代码调用api,只需修改为:payload = {"model": "mario", "prompt": "你是谁,请使用中文回答" }

import requests
import json

# 发送 API 请求获取回复
url = "http://localhost:11434/api/generate"
#payload = {"model": "llama3", "prompt": "中文回答,你是谁"}
payload = {"model": "mario", "prompt": "你是谁,请使用中文回答" }
response = requests.post(url, json=payload, stream=True)  # 确保使用 stream=True

# 尝试解析流式 JSON 响应
try:
    # 处理流式响应中的多个 JSON 对象
    for line in response.iter_lines():
        if line:  # 确保行不为空
            try:
                # 解析单个 JSON 对象
                response_json = json.loads(line.decode('utf-8'))
                # 直接打印新响应部分,不换行
                if 'response' in response_json:
                    print(response_json['response'], end='', flush=True)
                # 检查是否是最后一个片段
                if 'done' in response_json and response_json['done']:
                    print("\nStream ended.")
                    break
            except json.JSONDecodeError as e:
                print("\nJSON decode error:", e)
                continue
except json.JSONDecodeError:
    print("Initial JSON decode error: potentially non-stream response")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学术菜鸟小晨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值