Code to Community

Journey Through OSS with Go OpenAI.

Dimyo Meetup #2

Yuichi Watanabe at Nulab Inc.

Profile

Index

ABOUT OPENAI API

Web API

OpenAIによって開発された新しいAIモデルにアクセスするためのAPIです。https://platform.openai.com/overview

various tasks

文章生成、テキストの要約、翻訳など、様々なタスクを実行します。

Intgration

既存のシステムにAIを統合することを容易にします。

ABOUT Go OPENAI

三Go

Goで書かれたOpenAI APIのクライアントライブラリです。https://github.com/sashabaranov/go-openai

WITH Azure

共通のインターフェースを通じて、OpenAI APIとAzure OpenAIサービスをサポートします。

popularity

6.0Kのスターを獲得し、非常に人気が高いです。

ABOUT Go OPENAI

Motivation to Contribute

OpenAI APIを使った実験的なツールを作ることへの興味と、Goへの好みから出発し、私は非常に人気のあるGo OpenAIライブラリを選びました。

 

Go OpenAIのコミュニティは非常に活発でした。しかし、単一のメンテナが数多くのIssueやプルリクエストを処理するのは難しそうでした。

 

これらの課題を克服するために手助けする意図で、私はGo OpenAIの開発にコントリビュートすることにしました。

Continuous Contribution

最初に、"Good First Issue"とラベル付けされたリファクタリングタスクに取り組みました。

 

これに続き、サポートされていないAPIの実装やバグ修正を行いました。

 

また、テストコードに大量のボイラープレートが存在したため、テストのリファクタリングを行い、コード量が大幅に削減しました。

 

コードへの貢献に加えて、他の人が行ったプルリクエストの議論への参加、Issueへの回答など、コードの貢献以外の他の活動も行いました。

result of continued contributions

約1ヶ月間の連続的なコントリビュートの後、Go OpenAIの著者であるAlexさんからTwitterでフォローされ、ダイレクトメッセージで感謝のメッセージを受け取りました。

 

そして、Alexさんからの招待により、私はこのプロジェクトの共同メンテナとして参加することになりました。とても誇りに思います。

Activities as a Maintainer

MY FIRST GOAL

  • プロジェクト管理の効率を上げる
  • メンテナンスのコミュニケーションコストを削減する

Activities as a Maintainer

Actions

  • IssueとPull Requestのテンプレートの導入

  • すべてのIssueにラベルを付ける

  • 重複または解決済みのIssueの整理

  • 非ActiveなIssueを自動で閉じるGitHub Actionsの導入

Activities as a Maintainer

Results

  • テンプレートの使用により、新たなIssueを作成したりプルリクエストを提出したりする際のフォーマットが標準化され、内容を理解しやすくなりました。

  • すべてのIssueがラベル付けされて整理され、Issueの種類を一目で理解することが可能になりました。

Activities as a Maintainer

Results

  • 重複しているか既に解決済みのIssueは閉じられ、OpenなIssueの数が約70個から25個に減少しました。

  • これらの努力により、プロジェクト管理がより効率的になり、メンテナンスのコミュニケーションコストが削減されました。

今回のコントリビューションはプルリクエストだけではなく、プロジェクト管理の側面でも大きな成果を得ることができました。

 

最初はGo OpenAIのユーザとして始まり、その後積極的なコントリビューターになり、最終的にはメンテナとなる過程は、ソフトウェア開発の深い理解を得るための重要なステップでした。これは、"CODE TO COMMUNITY"というタイトルのとおり、1行のコードが開発者コミュニティの活動へと変化していく旅のように感じられました。

 

このプレゼンテーションが皆さんのオープンソースプロジェクトへの参加を考えてみるきっかけになることを願っています。

Conclusion

acknowledgements

このプレゼンテーションは、Go OpenAIの著者であるAlexさんの尽力と貢献なしには実現できませんでした。彼に最大の敬意と感謝を表します。

 

AlexさんのOSS活動を是非チェックしてみてください。
https://github.com/sponsors/sashabaranov

CODE TO COMMUNITY 【日本語】

By Yuichi Watanabe

CODE TO COMMUNITY 【日本語】

  • 1,213