面向开发者的LLM入门课程-处理输入:生成查询答案: 生成查询答案 1.解析输入字符串 定义一个 read_string_to_list 函数,将输入的字符串转换为 Python 列表 def read_s……
哈喽!伙伴们,我是小智,你们的AI向导。欢迎来到每日的AI学习时间。今天,我们将一起深入AI的奇妙世界,探索“面向开发者的LLM入门课程-处理输入:生成查询答案”,并学会本篇文章中所讲的全部知识点。还是那句话“不必远征未知,只需唤醒你的潜能!”跟着小智的步伐,我们终将学有所成,学以致用,并发现自身的更多可能性。话不多说,现在就让我们开始这场激发潜能的AI学习之旅吧。
面向开发者的LLM入门课程-处理输入:生成查询答案:
生成查询答案
1.解析输入字符串
定义一个 read_string_to_list 函数,将输入的字符串转换为 Python 列表
def read_string_to_list(input_string):
“””
将输入的字符串转换为 Python 列表。
参数:
input_string: 输入的字符串,应为有效的 JSON 格式。
返回:
list 或 None: 如果输入字符串有效,则返回对应的 Python 列表,否则返回 None。
“””
if input_string is None:
return None
try:
# 将输入字符串中的单引号替换为双引号,以满足 JSON 格式的要求
input_string = input_string.replace(“‘”, “””)
data = json.loads(input_string)
return data
except json.JSONDecodeError:
print(“Error: Invalid JSON string”)
return None
category_and_product_list = read_string_to_list(category_and_product_response_1)
print(category_and_product_list)
[{‘category’: ‘Smartphones and Accessories’, ‘products’: [‘SmartX ProPhone’]},
{‘category’: ‘Cameras and Camcorders’, ‘products’: [‘FotoSnap DSLR Camera’,
‘FotoSnap Mirrorless Camera’, ‘FotoSnap Instant Camera’]}, {‘category’:
‘Televisions and Home Theater Systems’, ‘products’: [‘CineView 4K TV’, ‘CineView
8K TV’, ‘CineView OLED TV’, ‘SoundMax Home Theater’, ‘SoundMax Soundbar’]}]
2.进行检索
定义函数 generate_output_string 函数,根据输入的数据列表生成包含产品或类别信息的字符串:
def generate_output_string(data_list):
“””
根据输入的数据列表生成包含产品或类别信息的字符串。
参数:
data_list: 包含字典的列表,每个字典都应包含 “products” 或 “category” 的键。
返回:
output_string: 包含产品或类别信息的字符串。
“””
output_string = “”
if data_list is None:
return output_string
for data in data_list:
try:
if “products” in data and data[“products”]:
products_list = data[“products”]
for product_name in products_list:
product = get_product_by_name(product_name)
if product:
output_string += json.dumps(product, indent=4,
ensure_ascii=False) + “n”
else:
print(f”Error: Product ‘{product_name}’ not found”)
elif “category” in data:
category_name = data[“category”]
category_products = get_products_by_category(category_name)
for product in category_products:
output_string += json.dumps(product, indent=4,
ensure_ascii=False) + “n”
else:
print(“Error: Invalid object format”)
except Exception as e:
print(f”Error: {e}”)
return output_string
product_information_for_user_message_1 =
generate_output_string(category_and_product_list)
print(product_information_for_user_message_1)
{
“名称”: “SmartX ProPhone”,
“类别”: “智能手机和配件”,
“品牌”: “SmartX”,
“型号”: “SX-PP10”,
“保修期”: “1 year”,
“评分”: 4.6,
“特色”: [
“6.1-inch display”,
“128GB storage”,
“12MP dual camera”,
“5G”
],
“描述”: “一款拥有先进摄像功能的强大智能手机。”,
“价格”: 899.99
}
{
“名称”: “FotoSnap DSLR Camera”,
“类别”: “相机和摄像机”,
“品牌”: “FotoSnap”,
“型号”: “FS-DSLR200”,
“保修期”: “1 year”,
“评分”: 4.7,
“特色”: [
“24.2MP sensor”,
“1080p video”,
“3-inch LCD”,
“Interchangeable lenses”
],
“描述”: “使用这款多功能的单反相机,捕捉惊艳的照片和视频。”,
“价格”: 599.99
}
{
“名称”: “FotoSnap Mirrorless Camera”,
“类别”: “相机和摄像机”,
“品牌”: “FotoSnap”,
“型号”: “FS-ML100”,
“保修期”: “1 year”,
“评分”: 4.6,
“特色”: [
“20.1MP sensor”,
“4K video”,
“3-inch touchscreen”,
“Interchangeable lenses”
],
“描述”: “一款具有先进功能的小巧轻便的无反相机。”,
“价格”: 799.99
}
{
“名称”: “FotoSnap Instant Camera”,
“类别”: “相机和摄像机”,
“品牌”: “FotoSnap”,
“型号”: “FS-IC10”,
“保修期”: “1 year”,
“评分”: 4.1,
“特色”: [
“Instant prints”,
“Built-in flash”,
“Selfie mirror”,
“Battery-powered”
],
“描述”: “使用这款有趣且便携的即时相机,创造瞬间回忆。”,
“价格”: 69.99
}
{
“名称”: “CineView 4K TV”,
“类别”: “电视和家庭影院系统”,
“品牌”: “CineView”,
“型号”: “CV-4K55”,
“保修期”: “2 years”,
“评分”: 4.8,
“特色”: [
“55-inch display”,
“4K resolution”,
“HDR”,
“Smart TV”
],
“描述”: “一款色彩鲜艳、智能功能丰富的惊艳4K电视。”,
“价格”: 599.99
}
{
“名称”: “CineView 8K TV”,
“类别”: “电视和家庭影院系统”,
“品牌”: “CineView”,
“型号”: “CV-8K65”,
“保修期”: “2 years”,
“评分”: 4.9,
“特色”: [
“65-inch display”,
“8K resolution”,
“HDR”,
“Smart TV”
],
“描述”: “通过这款惊艳的8K电视,体验未来。”,
“价格”: 2999.99
}
{
“名称”: “CineView OLED TV”,
“类别”: “电视和家庭影院系统”,
“品牌”: “CineView”,
“型号”: “CV-OLED55”,
“保修期”: “2 years”,
“评分”: 4.7,
“特色”: [
“55-inch display”,
“4K resolution”,
“HDR”,
“Smart TV”
],
“描述”: “通过这款OLED电视,体验真正的五彩斑斓。”,
“价格”: 1499.99
}
{
“名称”: “SoundMax Home Theater”,
“类别”: “电视和家庭影院系统”,
“品牌”: “SoundMax”,
“型号”: “SM-HT100”,
“保修期”: “1 year”,
“评分”: 4.4,
“特色”: [
“5.1 channel”,
“1000W output”,
“Wireless subwoofer”,
“Bluetooth”
],
“描述”: “一款强大的家庭影院系统,提供沉浸式音频体验。”,
“价格”: 399.99
}
{
“名称”: “SoundMax Soundbar”,
“类别”: “电视和家庭影院系统”,
“品牌”: “SoundMax”,
“型号”: “SM-SB50”,
“保修期”: “1 year”,
“评分”: 4.3,
“特色”: [
“2.1 channel”,
“300W output”,
“Wireless subwoofer”,
“Bluetooth”
],
“描述”: “使用这款时尚而功能强大的声音,升级您电视的音频体验。”,
“价格”: 199.99
}
3.生成用户查询的答案
system_message = f”””
您是一家大型电子商店的客服助理。
请以友好和乐于助人的口吻回答问题,并尽量简洁明了。
请确保向用户提出相关的后续问题。
“””
user_message_1 = f”””
请告诉我关于 smartx pro phone 和 the fotosnap camera 的信息。
另外,请告诉我关于你们的tvs的情况。
“””
messages = [{‘role’:’system’,’content’: system_message},
{‘role’:’user’,’content’: user_message_1},
{‘role’:’assistant’,
‘content’: f”””相关产品信息:n
{product_information_for_user_message_1}”””}]
final_response = get_completion_from_messages(messages)
print(final_response)
关于SmartX ProPhone和FotoSnap相机的信息如下:
SmartX ProPhone是一款由SmartX品牌推出的智能手机。它拥有6.1英寸的显示屏,128GB的存储空间,12MP的双摄像头和5G网络支持。这款手机的特点是先进的摄像功能。它的价格是899.99美元。
FotoSnap相机有多个型号可供选择。其中包括DSLR相机、无反相机和即时相机。DSLR相机具有24.2MP的传感器、1080p视频拍摄、3英寸的LCD屏幕和可更换镜头。无反相机具有20.1MP的传感器、4K视频拍摄、3英寸的触摸屏和可更换镜头。即时相机具有即时打印功能、内置闪光灯、自拍镜和电池供电。这些相机的价格分别为599.99美元、799.99美元和69.99美元。
关于我们的电视产品,我们有CineView和SoundMax品牌的电视和家庭影院系统可供选择。CineView电视有不同的型号,包括4K分辨率和8K分辨率的电视,以及OLED电视。这些电视都具有HDR和智能电视功能。价格从599.99美元到2999.99美元不等。SoundMax品牌提供家庭影院系统和声音棒。家庭影院系统具有5.1声道、1000W输出、无线低音炮和蓝牙功能,价格为399.99美元。声音棒具有2.1声道、300W输出、无线低音炮和蓝牙功能,价格为199.99美元。
请问您对以上产品中的哪个感
在这个例子中,我们只添加了一个特定函数或函数的调用,以通过产品名称获取产品描述或通过类别名称获取类别产品。但是,模型实际上擅长决定何时使用各种不同的工具,并可以正确地使用它们。这就是 ChatGPT 插件背后的思想。我们告诉模型它可以访问哪些工具以及它们的作用,它会在需要从特定来源获取信息或想要采取其他适当的操作时选择使用它们。在这个例子中,我们只能通过精确的产品和类别名称匹配查找信息,但还有更高级的信息检索技术。检索信息的最有效方法之一是使用自然语言处理技术,例如命名实体识别和关系提取。
另一方法是使用文本嵌入(Embedding)来获取信息。嵌入可以用于实现对大型语料库的高效知识检索,以查找与给定查询相关的信息。使用文本嵌入的一个关键优势是它们可以实现模糊或语义搜索,这使您能够在不使用精确关键字的情况下找到相关信息。因此,在此例子中,我们不一定需要产品的确切名称,而可以使用更一般的查询如 “手机” 进行搜索。
嘿,伙伴们,今天我们的AI探索之旅已经圆满结束。关于“面向开发者的LLM入门课程-处理输入:生成查询答案”的内容已经分享给大家了。感谢你们的陪伴,希望这次旅程让你对AI能够更了解、更喜欢。谨记,精准提问是解锁AI潜能的钥匙哦!如果有小伙伴想要了解学习更多的AI知识,请关注我们的官网“AI智研社”,保证让你收获满满呦!
还没有评论呢,快来抢沙发~