TiDB Future App Hackathon 2024に応募しよう!

TiDB Future App Hackathonが先週末に投稿開始となりました！
普段AIアプリの開発をしているかたも、これを機会にやってみようという方も、是非ご参加ください！

この記事ではTiDB Future App Hackathonの概要や応募の方法、参考リンクなどについて記載しています。
作品の投稿方法については長くなるため別途記事を記載予定です。

## TiDB Future App Hackathonの概要

https://pingcap.co.jp/event/tidb-future-app-hackathon-2024/

TiDB Future App Hackathonは、TiDB Serverlessを用いたAIアプリケーションを作成して競うハッカソンです。
TiDB Serverlessを利用することが条件ですが、その他は特に縛りがなく、自由にツール・言語モデル・環境を選んで作成することができます。

４名までのチームで応募できます。もちろん個人でも構いません。

## 何を作るの？

TiDB Serverlessのベクトル検索機能を用いたAIアプリケーションです。
アプリケーションは何でも良く、公式サイトには下記の例がありますがこれにこだわる必要はありません。

- 自然言語処理 (NLP)
    - 大量のデータ（メール、チャット、ニュース、音声、動画など）を自動的に処理し、メッセージの意図や感情を分析してリアルタイムで応答するアプリケーション。
- 推薦システム	
    - データを使用してユーザーのニーズを予測するアプリケーション。
Retrieval-Augmented Generation (RAG)	外部の信頼できる知識源を参照してLLMの出力を向上させるアプリケーション。
- 類似検索
    - ベクトル表現に基づいて類似したコンテンツやデータを見つける技術。
- Text-To-SQL/Text-To-Chart
    - 自然言語クエリをSQLクエリやチャート仕様に変換する技術やツール。TiDBと対話し、会話型インターフェースを通じてデータを視覚化します。

また、使うツールも特に指定がありません。[LlamaIndex](https://www.llamaindex.ai/) などを用いてコーディングしても構いませんし、[Dify](https://dify.ai/) のようなローコードツールを使って作るのも自由です。

## 参加するには？

https://tidbhackathon2024.devpost.com/

TiDB Future App Hackathonはhackathonのホスティングサイト、devpostで開催しています。
上のリンクからページを開いて、"Join Hackathon" ボタンを押し、必要な情報を入力してください。

## 困ったら

参考情報に記載のフォーラムで質問してください！ また、日本語では [TiDB User GroupのDiscord #tidb-hackathon-2024](https://discord.gg/TCAPGanAAh) で質問できます。（私も見ており、質問あれば回答するようにしています）


## 参考情報

### フォーラム

- [PingCAP 公式Discord（英語)](https://discord.gg/vMntGekTrS)
    - Hackathon 2024 カテゴリの下にいくつかのチャネルがあります。スポンサーツールについての質問も可能
- [Ask TiDB(英語)](https://ask.pingcap.com/c/community/tidb-hackathon/)
    -  HackathonについてのQ&Aフォーラムです。 提出方法などが告知されています。
-  [TiDB User Group(日本語)](https://discord.gg/TCAPGanAAh)
    -  日本のTiDBユーザーグループです。ハッカソンだけではなく、ミートアップなども行っていますので是非登録してみてください！

### X (twitter)

- [TiDB Developer](https://x.com/TiDB_Developer)
    - TiDBの開発に関するトピックをポストする公式アカウントです。TiDB Serverlessを用いたAIアプリケーションサンプルなどもポストされるので是非フォローしてください。
- [bohnen](https://x.com/bohnen)
    - 筆者のXアカウントです。メンションしたら調べます。

### TiDB Serverless

- [TiDB Serverless x AWS Bedrockで始めるRAGアプリケーション入門](https://zenn.dev/koiping/articles/a4362c8b1c0ee8)
    - TiDB ServerlessのサインアップからRAGアプリケーションを作成するところまでのチュートリアルです。こちらを試すと一通りの開発準備が整うのではないかと思います。
- [TiDB Serverless vector searchを試す](https://zenn.dev/kameping/articles/13086a865619b3)
    - KamePingさんによるTiDB Serverless Vector Searchを使ってみる記事です。TiDBはRDBMSですので、Vector Searchも当然SQLから操作することができます。
- [TiDB Serverless + Python](https://docs.pingcap.com/tidbcloud/vector-search-get-started-using-python)
    - 公式ドキュメントにある、pythonからのTiDB ServerlessのVector Searchサンプルです
- [TiDB Serverless + Dify](https://zenn.dev/bohnen/articles/6a1969b5f17b8e)
    - TiDB ServerlessをDifyと組み合わせるやり方について記載しています。
- [TiDB.AI](https://tidb.ai/)
    - TiDB Serverlessを用いて作ったRAGアプリケーションサンプルです。TiDBのドキュメントをベースに質問に答えるchatbotです。日本語でも問い合わせできるのでTiDBでわからないことがあれば聞いてみてもOKです。
    - ソースコードも公開されています。 https://github.com/pingcap/tidb.ai

### AIツール

https://ask.pingcap.com/t/development-tools-tidb-future-app-hackathon-2024/2112

上記のポストから、スポンサーツールについて抜粋して翻訳しました。

#### AnyScale

https://www.anyscale.com/

Anyscaleプラットフォームは、オープンソースのRayをベースに、いくつかの重要な利点を提供します。開発者やAIチームにシームレスなユーザーエクスペリエンスを提供し、開発を加速し、AI/MLワークロードを大規模に展開します。Anyscaleを使用する企業は、AIライフサイクル全体で迅速な市場投入とより早いイテレーションを享受できます。

- リポジトリ: [GitHub - ray-project/ray](https://github.com/ray-project/ray): RayはAIおよびPythonアプリケーションをスケーリングするための統一フレームワークです。Rayはコア分散ランタイムと、MLワークロードを加速するための一連のAIライブラリで構成されています。

#### Dify

https://dify.ai/

Difyは、誰にでも使いやすい生成AIアプリケーション開発プラットフォームです。Difyは、AIワークフロー、RAGパイプライン、エージェント機能、モデル管理、監視機能などを視覚的インターフェースで組み合わせ、ビルダーがプロトタイプから本番環境まで迅速に移行できるようにします。

- セルフホスト型: [Community Edition | Dify](https://github.com/langgenius/dify)
- クラウド型: [Dify.ai](https://cloud.dify.ai/signin)
- リポジトリ: [GitHub - langgenius/dify](https://github.com/langgenius/dify)

#### Jina.ai

https://jina.ai/

Jina AIでは、Embedding、Reranker、プロンプト操作、コアインフラストラクチャで構成される検索基盤を構築しています。これらのコンポーネントは協調して動作し、データの検索および理解の方法を革新し、関連性を高め、検索時間を短縮します。

- Embedding: [Embedding API](https://docs.jina.ai/embedding-api)
- Reranker: [Reranker API](https://docs.jina.ai/reranker-api)
- リーダー: [Reader API](https://docs.jina.ai/reader-api)
- HuggingFaceリンク: [jinaai (Jina AI)](https://huggingface.co/jinaai)
- TiDBベクトル検索との統合: [Integrate TiDB Vector Search with Jina AI Embeddings API](https://docs.pingcap.com/tidbcloud/vector-search-integrate-with-jinaai-embedding)

#### Lapton AI

https://www.lepton.ai/

Lepton AIは、プロダクション対応のサーバーレスAPIおよび専用デプロイメントを提供し、開発者および企業がAIアプリケーションを迅速かつ効率的にスケーリングできるようにします。

- サーバーレスAPIの始め方: [https://www.lepton.ai/docs/public_models/model_apis](https://www.lepton.ai/docs/public_models/model_apis)
- 専用デプロイメントの始め方: [https://www.lepton.ai/docs/overview/quickstart](https://www.lepton.ai/docs/overview/quickstart)
- リポジトリ: [GitHub - leptonai/leptonai](https://github.com/leptonai/leptonai): AIサービス構築を簡素化するPythonフレームワーク

#### LlamaIndex

https://www.llamaindex.ai/

LlamaIndexは、データをLLMに接続するためのPythonおよびTypeScriptのフレームワークです。データベースやファイルシステムからデータをロードする方法、データをインデックス化および埋め込むためのツール、データをクエリするためのエンジンを提供し、生成AIアプリケーションを迅速かつ簡単に構築できます。チャットボットやエージェントなどを素早く作成できます。

- ドキュメント: [docs.llamaindex.ai](https://docs.llamaindex.ai) と [ts.llamaindex.ai](https://ts.llamaindex.ai)
- リポジトリ: [GitHub - run-llama/llama_index](https://github.com/run-llama/llama_index): LlamaIndexは、LLMアプリケーションのためのデータフレームワークです
- LlamaIndexのTypeScript版 [GitHub - run-llama/LlamaIndexTS](https://github.com/run-llama/LlamaIndexTS)

### 過去のハッカソンの作品

TiDB Future App Hackathon 2023の作品集です。アプリケーションのアイディアや、投稿する動画の参考にどうぞ！

https://tidbhackathon2023.devpost.com/project-gallery