暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

小白学RAG:ChatGPT API与提示词进阶

Coggle数据科学 2024-03-25
1037

ChatGPT使用教程

对话API

import requests

# https://api2d.com/wechat/recharge
# chatgpt接口地址(国内代理)
url = "https://openai.api2d.net/v1/chat/completions"

headers = {
    'Content-Type''application/json',
    
    # <-- 把 fkxxxxx 替换成你自己的 Forward Key,注意前面的 Bearer 要保留,并且和 Key 中间有一个空格
    'Authorization''Bearer 填入key'
}

data = {
  "model""gpt-4-0613"# 模型
    
  # 对话的输入
  "messages": [{
      "role""user"
      "content"'''You are a student working on the following assignment.

Create an essay based on the following topic in no more than 50 words.

Topic: Car-Free cities.
'''
}]
}

response = requests.post(url, headers=headers, json=data)
print("Status Code", response.status_code)
print("JSON Response ", response.json())

嵌入API

import requests

url = "https://openai.api2d.net/v1/embeddings"

headers = {
  'Content-Type''application/json',
  'Authorization''Bearer fkxxxxx' # <-- 把 fkxxxxx 替换成你自己的 Forward Key,注意前面的 Bearer 要保留,并且和 Key 中间有一个空格。
}

data = {
    "model""text-embedding-ada-002",
    "input""一起学习人工智能"
}
response = requests.post(url, headers=headers, json=data)

print("Status Code", response.status_code)
print("JSON Response ", response.json())

unsetunsetChatGPT使用教程unsetunset

任务1:初识ChatGPT

  • 任务说明:熟悉ChatGPT的基本使用方法,了解如何与模型进行交互,并生成文本输出。
  • 实践步骤:
    1. 通过网页端ChatGPT或ChatGPT API发送prompt,可以尝试不同的prompt,观察模型的输出。
    2. 理解ChatGPT的对话机制,尝试在网页端ChatGPT和API进行对话。
    3. 将ChatGPT或API的实验过程进行截图,并思考为什么ChatGPT能回答不同的文本。

网页端ChatGPT需自己注册,如果没有账号可以使用下面的ChatGPT API来完成打卡。

import requests
url = "https://openai.api2d.net/v1/chat/completions" # 服务域名+接口

headers = {
  'Content-Type''application/json',
  'Authorization''Bearer fkxxxxx' # <-- 把 fkxxxxx 替换成你自己的 Forward Key,注意前面的 Bearer 要保留,并且和 Key 中间有一个空格。
}

data = {
  "model""gpt-3.5-turbo",
  "messages": [{"role""user""content""你好!给我讲个笑话。"}]
}
response = requests.post(url, headers=headers, json=data)
print("Status Code", response.status_code)
print("JSON Response ", response.json())

在访问代理api时,如果出现问题,则建议替换下面的域名:

  • https://openai.api2d.net 正式接口,分布式部署
  • https://oa.api2d.net 备用接口,如果上一个无法使用(比如因为域名包含 openai 被屏蔽)可以使用这个
  • https://oa.api2d.site,https://oa.api2d.online 临时域名,如果前两个都无法访问可以尝试这两个(过期时间 2024-06-15)
  • https://stream.api2d.net 备用接口,如果前两个都无法使用,可以使用这个

任务2:ChatGPT编写正则

  • 任务说明:在ChatGPT中编写和使用正则表达式,以实现文本匹配和模式提取的功能。
  • 待匹配文本:
Enron Dataset: Over half a million anonymized emails from over 100 users. It’s one of the few publically available collections of “real” emails available for study and training sets.

Google Blogger Corpus: Nearly 700,000 blog posts from blogger.com. The meat of the blogs contain commonly occurring English words, at least 200 of them in each entry.

SMS Spam Collection: Excellent dataset focused on spam. Nearly 6000 messages tagged as legitimate or spam messages with a useful subset extracted directly from Grumbletext.

Recommender Systems Datasets: Datasets from a variety of sources, including fitness tracking, video games, song data, and social media. Labels include star ratings, time stamps, social networks, and images.

Project Gutenberg: Extensive collection of book texts. These are public domain and available in a variety of languages, spanning a long period of time.

  • 实践步骤:
    1. 编写prompt让ChatGPT写一个能识别首字母大写单词的正则。
    2. 编写prompt让ChatGPT写一个能识别首字母大写且字符个数小于10的正则。
    3. 编写prompt让ChatGPT写一个能识别单词末尾为标点符号的正则。
    4. 上述实验过程进行截图,通过Python代码验证ChatGPT输出正则的有效性。

任务3:ChatGPT自动EDA

  • 任务说明:使用ChatGPT模型对表格数据进行自动EDA,以发现数据中的模式、趋势和特征。
  • 任务数据集:
import pandas as pd
df = pd.read_csv('https://mirror.coggle.club/dataset/affairs.txt')
df.info()

  • 实践步骤:
    1. 将数据集关键信息整理为prompt内容,让ChatGPT输出Pandas代码来统计每列缺失值。
    2. 编写prompt让ChatGPT输出Pandas代码来统计affairs列的分布并绘制饼图。
    3. 编写prompt让ChatGPT输出Pandas代码来统计affairs列在yrs_married下的分布并绘制柱状图。
    4. 编写prompt让ChatGPT输出Pandas代码来绘制age列和yrs_married列的散点图。
    5. 上述实验过程进行截图,通过Python代码验证ChatGPT输出Python代码的有效性。

任务4:ChatGPT文本分类

  • 任务说明:了解如何使用ChatGPT模型实现文本分类,并将文本数据分配到正确的类别中。
  • 任务训练集:
labelreview
0辣,饭冷啦,都两三小时才送来慢
0足足等了將近一個半小時,飯也基本不太熱了,因為網上付款了所以吃飯就不退送餐費,所以你們就任意遲到,我說的有錯嗎
0送餐的师傅,服务质量太差,送过来都已经坨了
1送的慢了点
1还行,就是速度好慢,一个多小时
0好慢,差一点就超时能打五折了
0皮太厚,不喜欢
0卷饼味道真的很一般
0就是太慢了,我12:44才收到,晚了一个小时,饭都凉了。
0土豆要多煮一下
  • 任务测试集:
labelreview
0味道没有传说中好
0太糟了。等了两个小时,牛肉我吃的快吐了,再也不可能第二次
1微辣一点都不辣啊
1定很多次啦!菜很好吃!也很及时!
0太慢了、恶死了
  • 实践步骤:
    1. 在不使用训练集的情况下,编写prompt让ChatGPT对于输入的文本进行分类,需要支持输入5条文本一次回答得到所有类别结果,且分类结果为0或1。
    2. 在使用训练集的情况下,编写prompt让ChatGPT对于输入的文本进行分类,需要支持输入5条文本一次回答得到所有类别结果,且分类结果为0或1。
    3. 上述实验过程进行截图,哪种方法可以得到更加有效的结果,为什么?

任务5:ChatGPT实体抽取

  • 任务说明:学习如何使用ChatGPT模型实现实体抽取,并从文本中准确地抽取出实体信息。
  • 待处理文本:
山药去皮洗净,切成小丁,用水浸泡,避免氧化变色。豌豆剥好,冲洗干净。胡萝卜去皮洗净,切成小丁。葱姜末、小米椒碎准备好。

锅内加水,煮开后放入少许盐,倒入豌豆,煮几分钟,至豌豆断生,煮好后捞出沥干水分。

另起锅加油,烧热后倒入姜末、小米椒碎爆锅,再倒入胡萝卜、山药翻炒,炒两分钟。

最后倒入豌豆翻炒均匀,再加入盐、鸡精、葱末翻炒几下,就可以出锅了,很好吃下饭香,快尝尝吧。

  • 实践步骤:
    1. 编写prompt让ChatGPT识别文本中的食物。
    2. 编写prompt让ChatGPT识别文本中的时间。
    3. 编写prompt让ChatGPT识别文本中的动作。
    4. 上述实验过程进行截图,人工验证抽取结果的有效性。

任务6:ChatGPT关系抽取

  • 任务说明:将学习如何使用ChatGPT模型实现关系抽取,并从文本中准确地抽取出实体之间的关系信息。
  • 待处理文本:
王小蒙的豆腐厂上线,每天忙里忙外,不得清闲。谢永强则专注自己的果园,和小蒙几天都见不上一面。两个孩子忙事业始终推迟婚期,急坏永强的父亲谢广坤。

赵玉田和刘英结婚后,开始忙于花圃的经营。来村中实习的女大学生陈艳南吸引了赵玉田的注意,刘英大吃其醋,无事忙刘能对女婿的做法也颇为不满。

香秀迎来了新同事王天来,李大国担心嫉妒,从中作梗。王天来单恋陈艳南,又和赵玉田矛盾不断。

长贵一方面想吸引王大拿来村里投资,一方面又怕谢大脚被大拿抢走,他和大脚之间若即若离,忽冷忽热,闹出不少笑话。

  • 实践步骤:

    1. 编写prompt让ChatGPT识别文本中的人名和两者之间的关系。
    2. 编写prompt让ChatGPT识别文本中有夫妻关系的人名和关系。
    3. 编写prompt让ChatGPT识别文本中与香秀相关的人名和关系。
    4. 上述实验过程进行截图,人工验证抽取结果的有效性。
  • 要求输出格式:

实体A - 关系1 - 实体B
实体B - 关系2 - 实体C

任务7:ChatGPT渲染表格

  • 任务说明:使用ChatGPT模型来生成和渲染表格,以便将数据以表格形式展示。
  • 待处理文本:
              precision    recall  f1-score   support

     class 0       0.50      1.00      0.67         1
     class 1       0.00      0.00      0.00         1
     class 2       1.00      0.67      0.80         3

    accuracy                           0.60         5
   macro avg       0.50      0.56      0.49         5
weighted avg       0.70      0.60      0.61         5

  • 实践步骤:编写prompt让ChatGPT将数据集处理为如下格式,要求prompt越短越好。
|         | F1    | Recall |
| ------- | ----- | ------ |
| class 2 | 0.800 | 0.670  |
| class 1 | 0.000 | 0.000  |
| class 0 | 0.670 | 1.000  |


任务8:ChatGPT文本匹配

  • 任务说明:使用ChatGPT的嵌入API,您可以将文本转换为嵌入向量,然后计算向量之间的相似度来实现文本匹配。
  • 待处理数据集:
文本1文本2标签
魔兽世界坐骑去哪买奥比岛在哪有皇室舞会的邀请函?0
在淘宝去哪里充值好在淘宝里怎么买火车票,哪里有0
鱼不可以和什么蔬菜一起吃鱼不能和什么药物一起吃0
读音是什么?怎么组词熙的读音和组词是什么?1
七夕到了,单身该怎么过啊?七夕单身的人怎么过?1
什么品牌的智能手机好用现在什么牌子的智能手机好用,又便宜呀1
一个人怎么过七夕?七夕一个人怎么过1
import requests

url = "https://openai.api2d.net/v1/embeddings"

headers = {
  'Content-Type''application/json',
  'Authorization''Bearer fkxxxxx' # <-- 把 fkxxxxx 替换成你自己的 Forward Key,注意前面的 Bearer 要保留,并且和 Key 中间有一个空格。
}

data = {
    "model""text-embedding-ada-002",
    "input""Coggle数据科学"
}
response = requests.post(url, headers=headers, json=data)

print("Status Code", response.status_code)
print("JSON Response ", response.json())

  • 实践步骤:
    1. 使用BERT对上面文本进行编码,然后计算每个样本句子相似度与标签的相关性。
    2. 使用ChatGPT对上面文本进行编码,然后计算每个样本句子相似度与标签的相关性。
    3. 上述实验过程进行截图,对比两种方法的有效性。
import pandas as pd
import matplotlib.pyplot as plt

# 读取数据
df = pd.read_csv('https://mirror.coggle.club/dataset/affairs.txt')

# 统计affairs列的分布
affairs_distribution = df['affairs'].value_counts()

# 绘制饼图
plt.figure(figsize=(88))
plt.pie(affairs_distribution, labels=affairs_distribution.index, autopct='%1.1f%%', startangle=140)
plt.title('Distribution of Affairs')
plt.show()

 学习大模型 & 讨论Kaggle  #

△长按添加竞赛小助手

每天大模型、算法竞赛、干货资讯

与 36000+来自竞赛爱好者一起交流

文章转载自Coggle数据科学,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论