为了阅读以下内容,您需要了解GPTCache的基本使用,参考:
v0.1.11 (2023.4.14)
- 添加openai complete适配器
cache.init(pre_embedding_func=get_prompt)
response = openai.Completion.create(
model="text-davinci-003",
prompt=question
)
-
添加langchain和openai bootcamp
-
添加openai image适配器(实验性的)
from gptcache.adapter import openai
cache.init()
cache.set_openai_key()
prompt1 = 'a cat sitting besides a dog'
size1 = '256x256'
openai.Image.create(
prompt=prompt1,
size=size1,
response_format='b64_json'
)
- 改进存储接口
v0.1.10 (2023.4.13)
- 添加kreciprocal相似度评估
K-reprciprocl评估是一种受ReID(arxiv.org/abs/1701.08…
vector_base = VectorBase("faiss", dimension=d)
data_manager = get_data_manager(CacheBase("sqlite"), vector_base)
evaluation = KReciprocalEvaluation(vectordb=vector_base)
cache.init(
... # other configs
data_manager=data_manager,
similarity_evaluation=evaluation,
)
- 添加LangChainChat适配器
from gptcache.adapter.langchain_models import LangChainChat
cache.init(
pre_embedding_func=get_msg,
)
chat = LangChainChat(chat=ChatOpenAI(temperature=0))
answer = chat(
messages=[
HumanMessage(
content="Translate this sentence from English to Chinese. I love programming."
)
]
)
v0.1.9 (2023.4.12)
- 将数据导入缓存
cache.init()
questions = ["foo1", "foo2"]
answers = ["a1", "a2"]
cache.import_data(questions=questions, answers=answers)
- 新的预处理函数:删除提示
当使用LLM模型时,每个输入可能会添加一个提示。如果将带提示的整个消息放入缓存中,则可能导致缓存错误命中率增加。例如,提示文字非常长,而实际问题的文字非常短。
cache_obj.init(
pre_embedding_func=last_content_without_prompt,
config=Config(prompts=["foo"]),
)
- 嵌入Milvus
嵌入式Milvus是Milvus的轻量级版本,可嵌入到您的Python应用程序中。它是一个单一的二进制文件,可以轻松安装和在您的机器上运行。
with TemporaryDirectory(dir="./") as root:
db = VectorBase(
"milvus",
local_mode=True,
local_data=str(root),
... #other config
)
data_manager = get_data_manager("sqlite", vector_base)