Lingma は、エンタープライズコードリポジトリに基づいて、インラインコードの検索拡張生成を提供します。開発者が Lingma を使用してインラインコードを生成する際、アップロードされたエンタープライズコードリポジトリをコード補完のコンテキストとして使用できます。これにより、コード補完の結果がエンタープライズコード標準やビジネス特性により適合するようになります。
この機能は Visual Studio Code および JetBrains IDE プラグインでのみサポートされており、Lingma IDE では利用できません。
対象エディション | Enterprise Dedicated Edition |
Lingma の管理者および組織レベルのグローバル管理者 (Dedicated Edition の場合) は、Lingma コンソールの [ナレッジマネージメント] ページで、コードリポジトリの追加または削除、および検索拡張生成機能の有効化または無効化を行うことができます。

エンタープライズナレッジベースの管理
Lingma の管理者および組織レベルのグローバル管理者 (Dedicated Edition の場合) は、エンタープライズナレッジベースを管理できます。これには、ナレッジベースの作成、編集、削除、ナレッジベースを閲覧できるメンバーの追加または削除、ナレッジベース内のコードリポジトリの追加または削除が含まれます。
ナレッジベースの作成、編集、削除
ナレッジベースの作成
サイドバーで、[ナレッジマネージメント] をクリックして [ナレッジマネージメント] ページに移動します。
[ナレッジマネージメント] ページで、[ナレッジベースの作成] をクリックします。
表示される [ナレッジベースの作成] フォームに、次の情報を入力します。
[アプリケーションシナリオ] を [インラインコード生成] に設定します。
認識しやすい [ナレッジベース名] を入力します。
(オプション) ナレッジベースの内容や目的を要約する [説明] を入力します。
ナレッジベースの [可視性] を選択します。デフォルトは [プライベート] で、ナレッジベースはそのメンバーにのみ表示されます。
情報を入力したら、[OK] をクリックします。
ナレッジベースが作成されると、[ナレッジマネージメント] ページに戻り、新しいナレッジベースがリストに表示されます。

ナレッジベースの編集
ナレッジベースの名前、説明、可視性などの基本情報は、次の 2 つの方法で変更できます。
[ナレッジマネージメント] ページから: ナレッジベースのリストで、編集したいナレッジベースを見つけ、編集アイコンをクリックして編集モードに入ります。
[ナレッジベース詳細] ページから: ナレッジベースの詳細ページに移動し、編集ボタンをクリックして編集モードに入ります。
ナレッジベースの削除
ナレッジベースの詳細ページに移動し、削除ボタンをクリックします。削除を確定するには、ナレッジベースの名前を入力する必要があります。
削除されたナレッジベースは回復できません。ナレッジベースが必要な場合は、新しく作成してデータを追加する必要があります。
コードアーカイブのアップロード

Lingma の管理者および組織レベルのグローバル管理者 (Dedicated Edition の場合) は、ナレッジベース内のデータを管理できます。アップロード手順は次のとおりです。
[データの追加] をクリックして [データの追加] ページに移動します。
データの型は [コード] です。コードアーカイブをアップロードするには、ファイルをクリックするか、アップロードエリアにドラッグします。
次の要件に注意してください。
一度に 1 つのコードリポジトリアーカイブをアップロードします。
サポートされているファイル形式: zip、gz、および tar.gz。
ファイルサイズは 100 MB を超えることはできません。
ファイル名は 200 文字を超えることはできず、UTF-8 および GBK ファイルエンコーディングのみがサポートされています。
情報取得中に情報が欠落するのを防ぐため、階層的で構造化されたコードリポジトリを使用することをお勧めします。
アップロードが完了したら、[追加の確認] をクリックします。その後、アーカイブはデータ処理フローに入ります。

コードナレッジベースでは、業務システムリポジトリをコンテンツとして使用しないでください。代わりに、一般的なセカンドパーティのパッケージソースコード、ユーティリティライブラリ、および同様のリソースを使用して、インラインコード補完の品質を向上させます。
検索拡張インラインコード生成の有効化/無効化
コードアーカイブが処理された後、検索拡張インラインコード生成を有効にできます。これには次の 2 つの方法があります。
[ナレッジマネージメント] ページで: ナレッジベースのリストで、ナレッジベースを見つけ、検索拡張生成スイッチをオンまたはオフにします。

[ナレッジベース詳細] ページで: ナレッジベースの詳細ページに移動し、検索拡張生成スイッチをオンまたはオフにします。

この機能を有効にすると、承認された開発者が IDE クライアントで Lingma のインラインコード生成を使用する際に、Lingma はアップロードされたコードデータに基づいてコード提案を生成します。
シナリオ例
フロントエンドチームは通常、エンジニアのために統一されたコーディング標準を維持しています。たとえば、ReactJS で開発する場合、ベストプラクティスについて明確な定義がしばしば存在します。これにより、Props が明確かつ効率的に記述され、不適切なコーディング習慣を避けるのに役立ちます。
import React from 'react'
type Props = {
children:react.reactnode;
}
// 悪い例
const lndex = (props: Props)=> {
return <>{props.children}</>
}
// 悪い例
const Index<Props>=({ children }) => {
return <>{children}</>
}
// 良い例
const Index: React.FC<Props> = (props) => {
return <>{props.children}</>
}このシナリオでは、Lingma のコードリポジトリからの拡張コード生成を使用できます。プロシージャは次のとおりです。
Lingma の管理者が、コーディング標準に準拠したコードアーカイブを管理コンソールにアップロードします。たとえば、管理者は、厳格な React コンポーネント設計標準に従う UI デザインのモデルである Ant Design をアップロードできます。
検索拡張インラインコード生成を有効にします。
チームのフロントエンドエンジニアは、IDE に Lingma をインストールして有効にします。
フロントエンドエンジニアがエディターでコードを記述すると、Lingma は、次の図に示すように、アップロードされたコードリポジトリのコーディング標準に従ったコード提案を生成できます。

ナレッジベースの可視性の管理
Lingma の管理者および組織レベルのグローバル管理者 (Dedicated Edition の場合) は、次の 2 つの方法でエンタープライズナレッジベースの可視性を変更できます。
ナレッジベースを編集して、その可視性を変更します。
ナレッジベースの詳細ページに移動し、[可視メンバー] タブをクリックして、ナレッジベースを閲覧できるメンバーを追加または削除します。

ナレッジベースで検索拡張生成機能が有効になっている場合、エンタープライズの開発者は IDE の `#teamDocs` 機能を使用してインラインコード生成を行うことができます。Lingma は、開発者に表示されるナレッジベースのデータに基づいてコードを生成します。
コードリポジトリのデータ処理進捗の表示
コードアーカイブがアップロードされると、システムはベクトル永続化のためにデータを処理します。このプロセスにより、コードは検索拡張生成に使用できるフォーマットに変換されます。コードリポジトリのリストでデータ処理の進捗状況を確認できます。ファイル処理のステータスは次のとおりです。
処理待ち: システムはアップロードされたファイルを順番に処理します。まだ処理されていないファイルはキューにあります。
処理中: ファイルは分析され、ベクトル化されています。
完了: ファイルは分析され、そのベクトルデータは永続化されています。
異常: ファイル処理中にエラーが発生しました。ステータスマーカーにカーソルを合わせると、理由を表示できます。その後、異常なファイルを再処理または削除できます。
重複ファイル: ファイルの内容が重複しているため、再処理されません。重複ファイルを削除できます。
コードリポジトリの更新
コードリポジトリが更新された場合は、データを再度追加して新しいファイルをアップロードできます。新しいファイルはアップロード後に再処理されます。
コードリポジトリの削除
異常な、重複した、または古いコードリポジトリを処理するには、削除操作をクリックして単一のリポジトリを削除できます。バッチ削除を実行するには、リストで複数のリポジトリを選択して削除します。