ChatGPTにMac上で仕事をさせる Open-Interpreter

# パソコンで動くアシスタント
ChatGPTは便利だけど、ブラウザで会話した結果を、自分で実行するのが面倒だと思いませんか？
Open-Interpreterなら、文章で頼むだけでローカルのファイルなどを操作してくれます。

https://github.com/KillianLucas/open-interpreter


たとえば、ローカルのcsvファイルを開いて、中身を整理してグラフにしてくれます。

# 使い方

### インストール

```shell
pip install open-interpreter
```

これだけでインストールできます。

### 対話開始

```shell
interpreter
```

OpenAI API Keyを入力します。

これだけで対話が立ち上がります。

![スクリーンショット 2024-02-11 12.59.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235259/c394ed75-5945-4fe9-d4dc-c06834544bef.png)

> 🤖今日は何をしましょうか？

ここで唐突にLAPD（ロサンゼルス市警）の犯罪データcsvがあるので、読ませて、グラフにまとめてもらいましょう。

>Crime_Data_from_2020_to_Present.csvを開いて、犯罪の種類ごとに発生件数を棒グラフにまとめて。

```python
もちろん、次のようにできます。
１、CSVをPandasのデータフレームに読み込みます。
２、各犯罪についてのまとめを取得します。
３、Matplotlibでデータをプロットします。

理解するために、CSVを読み込んで、最初の方のレコードを表示させてください。

 import pandas as pd                                                                      
# Load the CSV file                                                               
  df = pd.read_csv('Crime_Data_from_2020_to_Present.csv')                           
                                                                                    
  # Display the first few rows                                                      
  df.head()  

実行しますか？　(y/n)
```

>y

```
データセットには複数の列がありますが、このタスクのためには"Crm Cd Desc"という列が犯罪のタイプを表しています。各犯罪タイプの数を数えます。
```

>お願いします。

```python
  # Get the count of each unique crime type                                         
  crime_counts = df['Crm Cd Desc'].value_counts()                                   
  crime_counts  

実行しますか? (y/n)
```

>y

```
  Crm Cd Desc                                                                       
  乗り物泥棒                       　 95866                             
  脅迫暴行　　　                        71019                             
　　　　個人情報の盗用詐欺                 55351                             
  車上荒らし                        55116                             
 　　空き巣                           54657                             
                                                  ...                               
  近親の性的暴行                        5                             
 　　銃器所持制限違反　　　　　　　　　　　　　　　　　　　　　　　           4                             
  解散命令違反                          3                             
  業務上横領                            2                             
  列車運行妨害                          1                             
  Name: count, Length: 139, dtype: int64  

データによると、「車両 - 盗難」が最も多く報告されている犯罪タイプであることがわかります。
ぎっしり詰め込んでいるので、最も一般的な 20 の犯罪タイプに焦点を当てます。
```

> ok

```python
 import matplotlib.pyplot as plt                                                   
                                                                                    
  # Setting the size of the figure                                                  
  plt.figure(figsize=(14, 8))                                                       
                                                                                    
  # Get the top 20 crime types                                                      
  top_crimes = crime_counts[:20]                                                    
                                                                                    
  # Plot the bar chart                                                              
  plt.barh(top_crimes.index, top_crimes.values, color='skyblue')                    
                                                                                    
  plt.xlabel('Number of Occurrences')                                               
  plt.ylabel('Type of Crime')                                                       
  plt.title('Top 20 Types of Crime (Number of Occurrences)')                        
  plt.gca().invert_yaxis()  # reversing the order to have the most common crime on  
  top                                                                               
                                                                                    
  plt.show()      

実行しますか？　(y/n)
```

>y

```
棒グラフは、最も頻繁に報告された犯罪の種類の上位 20 を示しています。
「車両 - 盗難」と「脅迫 - 単純な暴行」が最も一般的です。
                                                                                    
   現在、チャートを側で表示できないため、許可をいただければチャートを現在の作業ディレクトリにある「crime_stats.png」という名前のPNG ファイルとして保存します。
```

>sure, please


```python
# Saving the figure as a png image                                                
  plt.figure(figsize=(14, 8))                                                       
  plt.barh(top_crimes.index, top_crimes.values, color='skyblue')                    
  plt.xlabel('Number of Occurrences')                                               
  plt.ylabel('Type of Crime')                                                       
  plt.title('Top 20 Types of Crime (Number of Occurrences)')                        
  plt.gca().invert_yaxis()                                                          
  plt.savefig('crime_stats.png')         

実行しますか？　(y/n)
```

>y

と言うことで、このチャート図が保存される。

![crime_stats.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235259/10ec0f77-2108-a2fa-e1e8-d414c7c882d0.png)

ChatGPTを使った

🐣
****
フリーランスエンジニアです。
AIについて色々記事を書いていますのでよかったらプロフィールを見てみてください。

もし以下のようなご要望をお持ちでしたらお気軽にご相談ください。
AIサービスを開発したい、ビジネスにAIを組み込んで効率化したい、AIを使ったスマホアプリを開発したい、
ARを使ったアプリケーションを作りたい、スマホアプリを作りたいけどどこに相談したらいいかわからない…

いずれも中間コストを省いたリーズナブルな価格でお請けできます。

お仕事のご相談はこちらまで
rockyshikoku@gmail.com

機械学習やAR技術を使ったアプリケーションを作っています。
機械学習／AR関連の情報を発信しています。

[X](https://twitter.com/JackdeS11)
[Medium](https://medium.com/@rockyshikoku)
[GitHub](https://github.com/john-rocky)