思维导图
引言
代码:
- https://github.com/langchain-ai/langchain
- https://github.com/hwchase17/langchain
一个允许用户上传PDF并提问的应用程序的概览图
主题
- 图像生成和声音生成
- 详细的用户界面实现
- 聊天GPT插件的利用
- 聊天GPT最新功能的利用(例如:函数调用)
章节结构
- 逐步创建一个 AI 聊天机器人,创建一个简单的摘要 AI 应用程序,然后创建一个更高级的 AI 应用程序,使用 Embedding 和 Vector DB
- 依次解释 ChatGPT、Streamlit 和 LangChain 等工具的设置和使用方法
- 结束LLM开发实际的 AI 应用程序
让我们开始环境设置
Python
- LangChain (0.0.225):Python >=3.8.1, <4.0
- Streamlit (1.24.0):Python >=3.8, !=3.9.7
- OpenA! (0.27.8):Python >=3.7.1
ChatGPT API 可用的主要模型
模型名称 | 描述 | 令牌上限 | 输入成本 (每1000令牌) | 输出成本 (每1000令牌) |
---|---|---|---|---|
gpt-3.5-turbo | ChatGPT的基础模型。快速且经济。 | 4096 | $0.0015 | $0.002 |
gpt-3.5-turbo-16k | gpt-3.5-turbo的变种。能处理非常长的指令。 | 16385 | $0.003 | $0.004 |
gpt-4 | 7月23日起,全球最强大的LLM。非常智能,但速度慢且昂贵。 | 8192 | $0.03 | $0.06 |
代码语言:javascript复制令牌计数:一个非常重要的概念。ChatGPT使用称为令牌的单位处理句子。按照输入指令(提示)和输出响应中的令牌数量计费。模型还确定了可以处理的令牌数量。
import tiktoken
encoding = tiktoken.encoding_for_model('gpt-3.5-turbo')
text = "This is a test for tiktoken."
tokens = encoding.encode(text)
print(len(text)) # 28
print(tokens) # [2028, 374, 264, 1296, 369, 87272, 5963, 13]
print(len(tokens)) # 8
最准确的模型text-embedding-ada-002可以非常便宜地使用,所以我认为您很少会使用其他模型。(费用为每1000个标记0.0001美元,几乎是免费的)
免费使用gpt-4方法:https://platform.openai.com/playground?model=gpt-4
创建您的第一个AI聊天应用
让我们创建一个ChatGPT克隆应用
我们将开发的AI聊天机器人操作流程
让我们创建一个简单的AI聊天应用
代码语言:javascript复制https://github.com/naotaka1128/ai_app_book/blob/main/chapter_03.py
import streamlit as st
from langchain.chat_models import ChatOpenAI
from langchain.schema import (SystemMessage, HumanMessage, AIMessage)
def main():
llm = ChatOpenAI(temperature=0)
st.set_page_config(
page_title="My Great ChatGPT",
page_icon="