大模型是怎么生成结果的
通俗原理
其实,它只是根据上文,猜下一个词(的概率)……
OpenAI 的接口名就叫【completion】,也证明了其只会【生成】的本质。
下面用程序演示【生成下一个字】。你可以自己修改 prompt 试试。还可以用相同的 prompt 运行多次。
from openai import OpenAI
import osfrom dotenv import load_dotenv, find_dotenv
_ = load_dotenv(find_dotenv())client = OpenAI()prompt = "今天我很" # 改我试试
response = client.completions.create(model="gpt-3.5-turbo-instruct",prompt=prompt,max_tokens=20,stream=True
)for chunk in response:print(chunk.choices[0].text, end='')
典型业务架构
AI Embedded 模式:某个环节用到AI
AI Copilot 模式:很多环节用到AI
AI Agent 模式:AI被大量的应用,人做的事几乎微乎其微,只需提要求
技术架构
1、纯Prompt
就像和一个人对话,你说一句,ta回一句,你再说一句,ta再回一句……
2、RAG = Agent + Function Calling
Agent:AI主动提要求
Function Calling:AI要求执行某个函数
场景举例:你问过年去哪玩,ta先反问你有几天假
3、RAG = Embeddings + 向量数据库
向量搜索:根据输入向量,找到最相似的向量
场景举例:考试时,看到一道题,到书上找相关内容,再结合题目组成答案。然后就都忘了(打小抄)
4、Fine-tuning
(不打小抄,把知识记住了,回答效果更好)
编程调用 Open API
官方文档:https://platform.openai.com/docs/api-reference
1、安装OpenAI Python库
在命令行执行:
pip install --upgrade openai
2、发一条消息
import openai
import os# 加载 .env 文件到环境变量
from dotenv import load_dotenv, find_dotenv
_ = load_dotenv(find_dotenv())# 初始化 OpenAI 服务。会自动从环境变量加载 OPENAI_API_KEY 和 OPENAI_BASE_URL
client = OpenAI()# 消息格式
messages = [{"role": "system","content": "你是AI助手小瓜,是 AGI 课程的助教。这门课每周二、四上课"},{"role": "user","content": "哪天有课?"},
}#调用GPT-3.5
chat_completion = client.chat.completion.create(model="gpt-3.5-turbo",message=message
)#输出回复
print(chat_completion.choices[0].message.content)
这门课每周二、四有课。因此,下一堂课将在本周二举行,再次在本周四上课。