ChatGPTのプログラム開発の工夫 作業効率向上
序文
ChatGPT は、GPT モデルに基づいてトレーニングされたチャットボットであり、自然言語でユーザーと対話できます。ChatGPT を使用すると、プログラム開発の効率が向上します。
- 質問応答: ChatGPT は仮想アシスタントとして機能し、開発者の質問に応答し、関連する回答を提供します。たとえば、ChatGPT に「Python を使用して Web スクレイピングを実装するにはどうすればよいですか?」または「データを保存するにはどのデータベースを使用すればよいですか?」などの質問をすることができます。
- コード生成: ChatGPT は、ユーザーが提供した自然言語記述からコードを生成できます。たとえば、関数の動作を説明すると、ChatGPT が対応するコードの生成に役立ちます。この使用シナリオでは、ChatGPT を使用することで開発速度と精度が向上し、実装詳細のエラーを減らすことができます。
- 提案とヒント: さらに、ChatGPT は以前のコード スニペットから学習し、予測や提案を通じて開発速度と精度を向上させることもできます。たとえば、新しい関数の作成を開始すると、ChatGPT は使用する関数と変数をプロンプトし、対応するパラメーターと戻り値の型を提供します。
1. MySQL データテーブルを作成する
1. コマンドの作成
ユーザーデータテーブルのmysqlステートメントを出力します。
次のフィールドを持つ users という名前のユーザー データ テーブルを作成するとします。
id:整数型、主キー、オートインクリメント
name:文字列型、ユーザー名
email:文字列型、ユーザーメールアドレス
password:文字列型、ユーザーパスワード
created_at:タイムスタンプ型、作成時刻
updated_at:タイムスタンプ型、更新時刻
が使用できます次の MySQL ステートメントを使用してデータ テーブルを作成します。
CREATE TABLE users (
id INT(11) NOT NULL AUTO_INCREMENT,
name VARCHAR(50),
email VARCHAR(50),
password VARCHAR(255),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT NOW() ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (id)
);
上記の SQL ステートメントは、users という名前のデータ テーブルを作成します。このテーブルには 6 つのフィールドが含まれており、そのうちの id フィールドは主キーであり、自動インクリメントするように設定されています。created_at フィールドと updated_at フィールドは、それぞれ作成時間と更新時間を記録するために使用されます。フィールドの種類と長さは、実際の状況に応じて変更できます。SQL ステートメント内のキーワードはすべて大文字であり、フィールド名とテーブル名はエラーを避けるために適切な大文字を使用する必要があることに注意してください。
mysqlで上記のユーザーテーブルに関連付けられたユニットテーブルを作成します。ユーザーのIDをユニットの関連付けIDとして使用するステートメントは何ですか?
CREATE TABLE departments (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
description VARCHAR(255),
user_id INT UNSIGNED NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (id),
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
上記のステートメントは、部門という名前のテーブルを作成します。このテーブルには、ユニット ID、ユニット名、ユニットの説明、ユーザー ID、作成時刻、更新時刻などのフィールドが含まれます。user_id フィールドは、ユーザー テーブルとの関連付けのためにユーザー テーブルの id フィールドにフックされます。FOREIGN KEY ステートメントは、MySQL が外部参照整合性の制約を強制できるように、Department テーブルの user_id フィールドが users テーブルの id フィールドのみを参照するように MySQL に指示します。
2. インタラクティブな評価
- コードの作成は非常に満足のいくもので、すぐに使用でき、満足しています。
- コードの場面や条件も丁寧に解説されており、大満足です!
2、PHP対話型ステートメント
1. コマンドの作成
phpで複数レコードの時間間隔を判定するコードを出力するにはどうすればよいですか?
<?php
$records = array(
array('time' => '2023-05-18 13:00:00'),
array('time' => '2023-05-18 14:00:00'),
array('time' => '2023-05-18 15:30:00')
); // 假设记录的时间存储在time字段中
$last_time = null; // 初始化上一个时间戳为空
foreach ($records as $record) {
$current_time = strtotime($record['time']); // 获取当前记录的时间戳
if ($last_time !== null && ($current_time - $last_time) < 3600) {
// 如果当前时间和上一个时间戳的时间差小于一个小时
echo '这些记录之间的时间间隔太短了'; // 输出错误信息
break; // 终止循环
}
$last_time = $current_time; // 将当前时间戳设为上一个时间戳
}
echo '这些记录之间的时间间隔符合要求'; // 如果循环能正常结束则代表时间间隔符合要求
?>
上記のコードは、最初に records 配列内の各レコードをチェックします。各レコードで、現在の時刻をタイムスタンプに変換し、前のレコードのタイムスタンプと比較して、少なくとも 1 時間の差があるかどうかを確認します。レコード間の時間間隔が短すぎる場合は、エラー メッセージを出力してループを終了します。そうでない場合は、現在のタイムスタンプを前のタイムスタンプに設定して、次のレコードに進みます。すべてのレコードがチェックされ、時間間隔が要件を満たしている場合は、正しい情報を出力します。これは単なる単純なサンプル コードであり、実際には、特定の要件とデータ構造に従ってコードを記述する必要があることに注意してください。
PHPのexplode関数の使い方
PHP の関数はexplode()
、指定された区切り文字に従って文字列を配列に分割できます。explode()
この関数の構文と使用法は次のとおりです。
array explode ( string $delimiter , string $string [, int $limit = PHP_INT_MAX ] )
パラメータの説明:
$delimiter
: 指定された区切り文字$string
: 分割する文字列$limit
: オプションのパラメータ、配列の要素数を制限します
サンプルコード:
$str = "apple,banana,orange";
$arr = explode(",", $str);
print_r($arr);
出力:
Array
(
[0] => apple
[1] => banana
[2] => orange
)
上の例では、配列に分割$str
します。配列の内容を出力する関数。,
$arr
print_r()
phpのキーワード空間検索の文章の書き方は?
次の例に示すように、SQL ステートメントで LIKE 演算子を使用して、キーワード スペース検索のステートメントを作成できます。
// 假设用户输入的关键词为 $keyword
$keyword = "php mysql";
// 将关键词按照空格分割为多个单词
$keywords = explode(" ", $keyword);
// 组装SQL语句
$sql = "SELECT * FROM table_name WHERE ";
foreach($keywords as $word) {
$sql .= "field_name LIKE '%" . $word . "%' AND ";
}
$sql = rtrim($sql, "AND ");
// 执行SQL语句
$result = mysqli_query($conn, $sql);
上記コードでは、ユーザーが入力したキーワードをスペースごとに複数の単語に分割し、その複数の単語をSQL文のLIKE演算子にループでつなぎ合わせてあいまい一致検索を行っています。最後に、構文エラーを避けるために、SQL ステートメントから冗長な AND キーワードを削除します。
2. インタラクティブな評価
3. JavaScript のインタラクティブな使用
1. コマンドの作成
Baidu echarts を使用してヒストグラム JS コードを描画するにはどうすればよいですか?
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>柱状图例子</title>
<!-- 引入 ECharts -->
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.0.2/echarts.min.js"></script>
</head>
<body>
<!-- 为 ECharts 准备一个具备大小(宽高)的 DOM -->
<div id="myChart" style="width: 600px;height:400px;"></div>
</body>
</html>
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('myChart'));
// 指定图表的配置项和数据
var option = {
title: {
text: '柱状图'
},
tooltip: {
},
legend: {
data:['销量']
},
xAxis: {
data: ["产品1", "产品2", "产品3", "产品4", "产品5"]
},
yAxis: {
},
series: [{
name: '销量',
type: 'bar',
data: [30, 50, 100, 80, 150]
}]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
jsでオブジェクトの2D配列をフィルタリングするにはどうすればよいですか? 具体的な書き方とは
filter()
オブジェクトの 2 次元配列をフィルタリングするために、JavaScript には、reduce()
や などの多くの組み込み関数が用意されていますmap()
。これらの関数は、配列内の要素のフィルター、変換、操作に使用できる配列メソッドです。
という名前data
の、これには多数のオブジェクトが含まれており、各オブジェクトには2 つのid
プロパティと が含まれているとします。name
以下を使用して、条件に一致するオブジェクトの配列をフィルタリングして返すことができます。
const data = [
{
id: 1, name: 'Alice'},
{
id: 2, name: 'Bob'},
{
id: 3, name: 'Charlie'},
{
id: 4, name: 'David'},
{
id: 5, name: 'Eve'}
];
// 过滤出名字中包含字母 "a" 的对象
const filteredData = data.filter(item => item.name.includes('a'));
console.log(filteredData);
// Output:
// [
// {id: 1, name: 'Alice'},
// {id: 3, name: 'Charlie'},
// {id: 4, name: 'David'}
// ]
上記のコードでは、 arrayfilter()
メソッド、配列内の各要素をフィルターするパラメーターとして匿名のアロー関数を渡すことができます。この例では、名前に文字「a」が含まれるオブジェクトをフィルタリングして除外し、フィルタリングされた結果をfilteredData
変数。
さらに、map()
このメソッド。
// 返回一个只包含名字的数组
const nameArray = data
.filter(item => item.id > 2)
.map(item => item.name);
console.log(nameArray);
// Output:
// ["Charlie","David","Eve"]
上記のコードでは、map()
メソッド対象となるオブジェクトの名前のみを含む配列を作成しました。
filter()
とだけでなくmap()
、他の多くの組み込み関数を使用して 2 次元オブジェクト配列をフィルタリングおよび操作することもできます。どれを使用するかは実際の状況によって異なります。
2. インタラクティブな評価
ChatGPT 上で完全な Echarts コード ページを直接出力できるというのは、私の想像を完全に超えています。同じ文ですが、強者に出会ったら強くなります、良い質問ができればChatGPTは必ず想像を超える答えを返します。
4番目、Pythonインタラクション
1. コマンドの作成
ジオコーディングのために Python で Baidu マップ Kaifang プラットフォーム Web API を呼び出す方法
Python を使用して Baidu Map Open Platform Web API を呼び出してジオコーディングを行う手順は、次の手順に分けることができます。
-
Baidu Map Open Platform でアプリケーションを作成し、開発者キー (ak) を取得します。
-
HTTP リクエストを送信するためのリクエスト ライブラリをインストールします。
-
アドレス情報や開発者キーなどの HTTP リクエスト パラメータを構築します。
-
HTTP リクエストを送信して、Baidu Maps API から返されるジオコーディング結果を JSON 形式で取得します。
-
JSON 結果を解析して、必要なジオコーディング情報を抽出します。
サンプルコードは次のとおりです。
import requests
import json
def geo_coding(address, city=None, ak=None):
"""
地理编码API,返回坐标信息
:param address: 地址信息
:param city: 城市名
:param ak: 开发者密钥
:return: 坐标信息
"""
url = 'http://api.map.baidu.com/geocoding/v3/'
params = {
'address': address,
'output': 'json',
'ak': ak
}
if city:
params['city'] = city
r = requests.get(url, params=params)
if r.status_code == 200:
result = json.loads(r.text)
if result['status'] == 0:
location = result['result']['location']
return f"{
location['lng']},{
location['lat']}"
return None
関数を呼び出すときは、アドレス情報と開発者キーを渡す必要があります。例えば:
ak = 'your_developer_key'
address = '北京市海淀区上地十街10号'
city = '北京市'
location = geo_coding(address, city, ak)
print(location) # 116.309297,40.056872
このコードは、入力された住所の緯度および経度の座標情報を出力します。つまり、北京市海淀区上地十街 10 号の緯度および経度の座標は 116.309297,40.056872 です。
上記のコードを改善し、結果を Excel ファイルに直接生成する方法
ジオコーディングの結果は、Python の pandas ライブラリを使用して Excel ファイルに生成できます。次のコードは、ジオコーディング結果を Excel シートに書き込む方法を示しています。
import requests
import json
import pandas as pd
def geo_coding(address, city=None, ak=None):
"""
地理编码API,返回坐标信息
:param address: 地址信息
:param city: 城市名
:param ak: 开发者密钥
:return: 坐标信息
"""
url = 'http://api.map.baidu.com/geocoding/v3/'
params = {
'address': address,
'output': 'json',
'ak': ak
}
if city:
params['city'] = city
r = requests.get(url, params=params)
if r.status_code == 200:
result = json.loads(r.text)
if result['status'] == 0:
location = result['result']['location']
return [address, location['lng'], location['lat']]
return None
# 添加多个地址信息
address_list = [
'北京市海淀区上地十街10号',
'上海市浦东新区陆家嘴环路',
'广州市天河区天河城'
]
# 调用地理编码API,获取坐标信息列表
ak = 'your_developer_key'
locations = [geo_coding(address, ak=ak) for address in address_list]
# 将结果列表转换为DataFrame
df = pd.DataFrame(locations, columns=['address', 'lng', 'lat'])
# 将DataFrame写入Excel文件
df.to_excel('./locations.xlsx', index=False)
上記のコードでは、まず複数の住所情報を に追加しaddress_list
、ループを通じてジオコーディング API を呼び出して各住所の座標情報を取得します。座標情報をリストに保存し、pandas DataFrame 形式に変換します。最後に、DataFrame
オブジェクトのto_excel
メソッドを使用して結果を Excel ファイルに書き込みます。
2. インタラクティブな評価
ChatGPT ですべてのコードを生成した後、一文字ずつ入力する効率は時間の無駄だと感じました。
要約する
ChatGPT を使用する場合は、次の点に注意してください。
1. 質問を明確に表現する: ChatGPT が質問や説明を理解できるようにするには、それらを明確に表現する必要があります。
2. 機械学習の制限に注意してください: 機械学習モデルは履歴データに基づいてトレーニングされるため、質問に答えたりコードを生成したりする場合、ChatGPT は履歴データによって制限され、バイアスを受ける可能性があります。チャットボットの精度を向上させるために、ChatGPT の制限に対抗して人工トレーニングを実行できます。
3. 他のツールやリソースと組み込む: ChatGPT は便利なツールですが、これが開発のすべてであり、すべてであると考えるべきではありません。開発作業をより適切に完了するには、オンライン ドキュメント、コード リポジトリ、コミュニティ フォーラムなどの他のツールやリソースも組み込む必要があります。
- ChatGPT の使い方を学ぶと、作業効率が向上するだけでなく、学習不足を自分自身に知らせることもできます。
- ChatGPT と対話する方法を学び、ChatGPT にあなたの言葉を絶えず理解させてください。常にその発展に適応し、互いに学び、成長しなければなりません。
- その可能性は無限ですが、限界もあります。その使い方を学びましょう。しかし、そこから抜け出せなくなるほど深く毒に陥ってはいけません。人工知能の使用にはハードウェアのサポートが必要であり、基本的な知識やロジックに対する人間の無知では相互に成功することはできません。
@リークタイムも時々あります