21/8/2024: CoPilot sekarang tersedia di v0.9 (v0.9.0). Silakan lihat Catatan Rilis untuk detailnya. Catatan: Di TigerGraph Cloud hanya tersedia CoPilot v0.5.
30/04/2024: CoPilot sekarang tersedia dalam Beta (v0.5.0). Fungsi baru telah ditambahkan ke CoPilot: Sekarang Anda dapat membuat chatbot dengan AI yang ditambah grafik pada dokumen Anda sendiri. CoPilot membuat grafik pengetahuan dari materi sumber dan menerapkan grafik pengetahuan RAG (Retrieval Augmented Generation) untuk meningkatkan relevansi kontekstual dan keakuratan jawaban atas pertanyaan bahasa alami mereka. Kami sangat senang mendengar tanggapan Anda untuk terus menyempurnakannya sehingga dapat memberikan nilai lebih bagi Anda. Akan sangat membantu jika Anda dapat mengisi survei singkat ini setelah Anda bermain dengan CoPilot. Terima kasih atas minat dan dukungan Anda!
18/3/2024: CoPilot sekarang tersedia dalam Alpha (v0.0.1). Ia menggunakan Model Bahasa Besar (LLM) untuk mengubah pertanyaan Anda menjadi pemanggilan fungsi, yang kemudian dieksekusi pada grafik di TigerGraph. Kami sangat senang mendengar tanggapan Anda untuk terus menyempurnakannya sehingga dapat memberikan nilai lebih bagi Anda. Jika Anda mencobanya, akan sangat membantu jika Anda dapat mengisi formulir pendaftaran ini sehingga kami dapat melacaknya (tidak ada spam, dijanjikan). Dan jika Anda hanya ingin memberikan masukan, silakan mengisi survei singkat ini. Terima kasih atas minat dan dukungan Anda!
TigerGraph CoPilot adalah asisten AI yang dirancang dengan cermat untuk menggabungkan kekuatan database grafik dan AI generatif untuk mendapatkan manfaat maksimal dari data dan meningkatkan produktivitas di berbagai fungsi bisnis, termasuk tugas analitik, pengembangan, dan administrasi. Ini adalah salah satu asisten AI dengan tiga layanan komponen inti:
Anda dapat berinteraksi dengan CoPilot melalui antarmuka obrolan di TigerGraph Cloud, antarmuka obrolan bawaan, dan API. Untuk saat ini, layanan LLM Anda sendiri (dari OpenAI, Azure, GCP, AWS Bedrock, Ollama, Hugging Face, dan Groq.) diperlukan untuk menggunakan CoPilot, namun dalam rilis mendatang Anda dapat menggunakan LLM TigerGraph.
Ketika pertanyaan diajukan dalam bahasa alami, CoPilot (InquiryAI) menggunakan interaksi tiga fase baru dengan database TigerGraph dan LLM pilihan pengguna, untuk mendapatkan respons yang akurat dan relevan.
Fase pertama menyelaraskan pertanyaan dengan data tertentu yang tersedia di database. CoPilot menggunakan LLM untuk membandingkan pertanyaan dengan skema grafik dan mengganti entitas dalam pertanyaan dengan elemen grafik. Misalnya, jika ada tipe simpul “BareMetalNode” dan pengguna bertanya “Ada berapa server?”, maka pertanyaannya akan diterjemahkan menjadi “Ada berapa simpul BareMetalNode?”. Pada fase kedua, CoPilot menggunakan LLM untuk membandingkan pertanyaan yang diubah dengan serangkaian kueri dan fungsi database yang dikurasi untuk memilih yang paling cocok. Pada fase ketiga, CoPilot mengeksekusi kueri yang teridentifikasi dan mengembalikan hasilnya dalam bahasa alami beserta alasan di balik tindakan tersebut.
Menggunakan kueri yang telah disetujui sebelumnya memberikan banyak manfaat. Pertama dan terpenting, ini mengurangi kemungkinan halusinasi, karena makna dan perilaku setiap pertanyaan telah divalidasi. Kedua, sistem mempunyai potensi untuk memprediksi sumber daya eksekusi yang diperlukan untuk menjawab pertanyaan.
Dengan SupportAI, CoPilot membuat chatbot dengan AI yang ditambah grafik pada dokumen atau data teks milik pengguna. Ini membangun grafik pengetahuan dari materi sumber dan menerapkan varian unik RAG (Retrieval Augmented Generation) berbasis grafik pengetahuan untuk meningkatkan relevansi kontekstual dan keakuratan jawaban atas pertanyaan bahasa alami.
CoPilot juga akan mengidentifikasi konsep dan membangun ontologi, menambahkan semantik dan penalaran ke grafik pengetahuan, atau pengguna dapat memberikan ontologi konsep mereka sendiri. Kemudian, dengan grafik pengetahuan yang komprehensif ini, CoPilot melakukan pengambilan hibrid, menggabungkan penelusuran vektor tradisional dan penjelajahan grafik, untuk mengumpulkan informasi yang lebih relevan dan konteks yang lebih kaya guna menjawab pertanyaan pengetahuan pengguna.
Mengorganisasikan data sebagai grafik pengetahuan memungkinkan chatbot mengakses informasi akurat dan berdasarkan fakta dengan cepat dan efisien, sehingga mengurangi ketergantungan pada menghasilkan respons dari pola yang dipelajari selama pelatihan, yang terkadang salah atau ketinggalan jaman.
QueryAI adalah komponen ketiga dari TigerGraph CoPilot. Ini dirancang untuk digunakan sebagai alat pengembang untuk membantu menghasilkan kueri grafik di GSQL dari deskripsi bahasa Inggris. Itu juga dapat digunakan untuk menghasilkan skema, pemetaan data, dan bahkan dasbor. Hal ini akan memungkinkan pengembang untuk menulis kueri GSQL dengan lebih cepat dan akurat, dan akan sangat berguna bagi mereka yang baru mengenal GSQL. Saat ini, generasi openCypher eksperimental telah tersedia.
CoPilot tersedia sebagai layanan tambahan untuk ruang kerja Anda di TigerGraph Cloud. Ini dinonaktifkan secara default. Silakan hubungi [email protected] untuk mengaktifkan TigerGraph CoPilot sebagai opsi di Marketplace.
TigerGraph CoPilot adalah proyek sumber terbuka di GitHub yang dapat diterapkan ke infrastruktur Anda sendiri.
Jika Anda tidak perlu memperluas kode sumber CoPilot, cara tercepat adalah menyebarkan gambar buruh pelabuhannya dengan file penulisan buruh pelabuhan di repo. Untuk mengambil rute ini, Anda memerlukan prasyarat berikut.
Langkah 1: Dapatkan file penulisan buruh pelabuhan
git clone https://github.com/tigergraph/CoPilot
File Docker Compose berisi semua dependensi untuk CoPilot termasuk database Milvus. Jika Anda tidak memerlukan layanan tertentu, Anda dapat mengedit file Compose untuk menghapusnya atau mengatur skalanya ke 0 saat menjalankan file Compose (detailnya nanti). Selain itu, CoPilot dilengkapi dengan halaman dokumentasi Swagger API saat diterapkan. Jika Anda ingin menonaktifkannya, Anda dapat mengatur variabel lingkungan PRODUCTION
ke true untuk layanan CoPilot di file Compose.
Langkah 2: Siapkan konfigurasi
Selanjutnya, di direktori yang sama dengan file Docker Compose, buat dan isi file konfigurasi berikut:
Langkah 3 (Opsional): Konfigurasikan Logging
touch configs/log_config.json
. Detail konfigurasi tersedia di sini.
Langkah 4: Mulai semua layanan
Sekarang, jalankan docker compose up -d
dan tunggu hingga semua layanan dimulai. Jika Anda tidak ingin menggunakan Milvus DB yang disertakan, Anda dapat mengatur skalanya ke 0 agar tidak memulainya: docker compose up -d --scale milvus-standalone=0 --scale etcd=0 --scale minio=0
.
Langkah 5: Instal UDF
Langkah ini tidak diperlukan untuk database TigerGraph versi 4.x. Untuk TigerGraph 3.x, kita perlu menginstal beberapa fungsi yang ditentukan pengguna (UDF) agar CoPilot dapat berfungsi.
sudo su - tigergraph
. Jika TigerGraph berjalan di sebuah klaster, Anda dapat melakukannya di salah satu mesin. gadmin config set GSQL.UDF.EnablePutTgExpr true
gadmin config set GSQL.UDF.Policy.Enable false
gadmin config apply
gadmin restart GSQL
PUT tg_ExprFunctions FROM "./tg_ExprFunctions.hpp"
PUT tg_ExprUtil FROM "./tg_ExprUtil.hpp"
gadmin config set GSQL.UDF.EnablePutTgExpr false
gadmin config set GSQL.UDF.Policy.Enable true
gadmin config apply
gadmin restart GSQL
Di file configs/llm_config.json
, salin template konfigurasi JSON dari bawah untuk penyedia LLM Anda, dan isi kolom yang sesuai. Hanya satu penyedia yang diperlukan.
OpenAI
Selain OPENAI_API_KEY
, llm_model
dan model_name
dapat diedit agar sesuai dengan detail konfigurasi spesifik Anda.
{
"model_name" : " GPT-4 " ,
"embedding_service" : {
"embedding_model_service" : " openai " ,
"authentication_configuration" : {
"OPENAI_API_KEY" : " YOUR_OPENAI_API_KEY_HERE "
}
},
"completion_service" : {
"llm_service" : " openai " ,
"llm_model" : " gpt-4-0613 " ,
"authentication_configuration" : {
"OPENAI_API_KEY" : " YOUR_OPENAI_API_KEY_HERE "
},
"model_kwargs" : {
"temperature" : 0
},
"prompt_path" : " ./app/prompts/openai_gpt4/ "
}
}
GCP
Ikuti informasi autentikasi GCP yang ada di sini: https://cloud.google.com/docs/authentication/application-default-credentials#GAC dan buat Akun Layanan dengan kredensial VertexAI. Kemudian tambahkan perintah berikut ke perintah docker run:
-v $( pwd ) /configs/SERVICE_ACCOUNT_CREDS.json:/SERVICE_ACCOUNT_CREDS.json -e GOOGLE_APPLICATION_CREDENTIALS=/SERVICE_ACCOUNT_CREDS.json
Dan konfigurasi JSON Anda harus mengikuti seperti:
{
"model_name" : " GCP-text-bison " ,
"embedding_service" : {
"embedding_model_service" : " vertexai " ,
"authentication_configuration" : {}
},
"completion_service" : {
"llm_service" : " vertexai " ,
"llm_model" : " text-bison " ,
"model_kwargs" : {
"temperature" : 0
},
"prompt_path" : " ./app/prompts/gcp_vertexai_palm/ "
}
}
Biru langit
Selain AZURE_OPENAI_ENDPOINT
, AZURE_OPENAI_API_KEY
, dan azure_deployment
, llm_model
dan model_name
dapat diedit agar sesuai dengan detail konfigurasi spesifik Anda.
{
"model_name" : " GPT35Turbo " ,
"embedding_service" : {
"embedding_model_service" : " azure " ,
"azure_deployment" : " YOUR_EMBEDDING_DEPLOYMENT_HERE " ,
"authentication_configuration" : {
"OPENAI_API_TYPE" : " azure " ,
"OPENAI_API_VERSION" : " 2022-12-01 " ,
"AZURE_OPENAI_ENDPOINT" : " YOUR_AZURE_ENDPOINT_HERE " ,
"AZURE_OPENAI_API_KEY" : " YOUR_AZURE_API_KEY_HERE "
}
},
"completion_service" : {
"llm_service" : " azure " ,
"azure_deployment" : " YOUR_COMPLETION_DEPLOYMENT_HERE " ,
"openai_api_version" : " 2023-07-01-preview " ,
"llm_model" : " gpt-35-turbo-instruct " ,
"authentication_configuration" : {
"OPENAI_API_TYPE" : " azure " ,
"AZURE_OPENAI_ENDPOINT" : " YOUR_AZURE_ENDPOINT_HERE " ,
"AZURE_OPENAI_API_KEY" : " YOUR_AZURE_API_KEY_HERE "
},
"model_kwargs" : {
"temperature" : 0
},
"prompt_path" : " ./app/prompts/azure_open_ai_gpt35_turbo_instruct/ "
}
}
Batuan Dasar AWS
{
"model_name" : " Claude-3-haiku " ,
"embedding_service" : {
"embedding_model_service" : " bedrock " ,
"embedding_model" : " amazon.titan-embed-text-v1 " ,
"authentication_configuration" : {
"AWS_ACCESS_KEY_ID" : " ACCESS_KEY " ,
"AWS_SECRET_ACCESS_KEY" : " SECRET "
}
},
"completion_service" : {
"llm_service" : " bedrock " ,
"llm_model" : " anthropic.claude-3-haiku-20240307-v1:0 " ,
"authentication_configuration" : {
"AWS_ACCESS_KEY_ID" : " ACCESS_KEY " ,
"AWS_SECRET_ACCESS_KEY" : " SECRET "
},
"model_kwargs" : {
"temperature" : 0 ,
},
"prompt_path" : " ./app/prompts/aws_bedrock_claude3haiku/ "
}
}
Ollama
{
"model_name" : " GPT-4 " ,
"embedding_service" : {
"embedding_model_service" : " openai " ,
"authentication_configuration" : {
"OPENAI_API_KEY" : " "
}
},
"completion_service" : {
"llm_service" : " ollama " ,
"llm_model" : " calebfahlgren/natural-functions " ,
"model_kwargs" : {
"temperature" : 0.0000001
},
"prompt_path" : " ./app/prompts/openai_gpt4/ "
}
}
Memeluk Wajah
Contoh konfigurasi untuk model pada Hugging Face dengan titik akhir khusus ditunjukkan di bawah. Silakan tentukan detail konfigurasi Anda:
{
"model_name" : " llama3-8b " ,
"embedding_service" : {
"embedding_model_service" : " openai " ,
"authentication_configuration" : {
"OPENAI_API_KEY" : " "
}
},
"completion_service" : {
"llm_service" : " huggingface " ,
"llm_model" : " hermes-2-pro-llama-3-8b-lpt " ,
"endpoint_url" : " https:endpoints.huggingface.cloud " ,
"authentication_configuration" : {
"HUGGINGFACEHUB_API_TOKEN" : " "
},
"model_kwargs" : {
"temperature" : 0.1
},
"prompt_path" : " ./app/prompts/openai_gpt4/ "
}
}
Contoh konfigurasi untuk model di Hugging Face dengan titik akhir tanpa server ditunjukkan di bawah. Silakan tentukan detail konfigurasi Anda:
{
"model_name" : " Llama3-70b " ,
"embedding_service" : {
"embedding_model_service" : " openai " ,
"authentication_configuration" : {
"OPENAI_API_KEY" : " "
}
},
"completion_service" : {
"llm_service" : " huggingface " ,
"llm_model" : " meta-llama/Meta-Llama-3-70B-Instruct " ,
"authentication_configuration" : {
"HUGGINGFACEHUB_API_TOKEN" : " "
},
"model_kwargs" : {
"temperature" : 0.1
},
"prompt_path" : " ./app/prompts/llama_70b/ "
}
}
Bagus
{
"model_name" : " mixtral-8x7b-32768 " ,
"embedding_service" : {
"embedding_model_service" : " openai " ,
"authentication_configuration" : {
"OPENAI_API_KEY" : " "
}
},
"completion_service" : {
"llm_service" : " groq " ,
"llm_model" : " mixtral-8x7b-32768 " ,
"authentication_configuration" : {
"GROQ_API_KEY" : " "
},
"model_kwargs" : {
"temperature" : 0.1
},
"prompt_path" : " ./app/prompts/openai_gpt4/ "
}
}
Salin kode di bawah ini ke configs/db_config.json
dan edit bidang hostname
dan getToken
agar sesuai dengan konfigurasi database Anda. Jika autentikasi token diaktifkan di TigerGraph, setel getToken
ke true
. Tetapkan parameter batas waktu, ambang batas memori, dan batas thread sesuai keinginan untuk mengontrol berapa banyak sumber daya database yang dikonsumsi saat menjawab pertanyaan.
“ecc” dan “chat_history_api” adalah alamat komponen internal CoPilot. Jika Anda menggunakan file Docker Compose apa adanya, Anda tidak perlu mengubahnya.
{
"hostname" : " http://tigergraph " ,
"restppPort" : " 9000 " ,
"gsPort" : " 14240 " ,
"getToken" : false ,
"default_timeout" : 300 ,
"default_mem_threshold" : 5000 ,
"default_thread_limit" : 8 ,
"ecc" : " http://eventual-consistency-service:8001 " ,
"chat_history_api" : " http://chat-history:8002 "
}
Salin kode di bawah ini ke configs/milvus_config.json
dan edit bidang host
dan port
agar sesuai dengan konfigurasi Milvus Anda (ingatlah konfigurasi buruh pelabuhan). username
dan password
juga dapat dikonfigurasi di bawah ini jika diperlukan oleh pengaturan Milvus Anda. enabled
harus selalu disetel ke "benar" untuk saat ini karena Milvus hanya mendukung penyimpanan penyematan.
{
"host" : " milvus-standalone " ,
"port" : 19530 ,
"username" : " " ,
"password" : " " ,
"enabled" : " true " ,
"sync_interval_seconds" : 60
}
Salin kode di bawah ini ke configs/chat_config.json
. Anda tidak perlu mengubah apa pun kecuali Anda mengubah port layanan riwayat obrolan di file Docker Compose.
{
"apiPort" : " 8002 " ,
"dbPath" : " chats.db " ,
"dbLogPath" : " db.log " ,
"logPath" : " requestLogs.jsonl " ,
"conversationAccessRoles": ["superuser", "globaldesigner"]
}
Jika Anda ingin mengaktifkan pembuatan kueri openCypher di InquiryAI, Anda dapat mengatur variabel lingkungan USE_CYPHER
ke "true"
di layanan CoPilot di file penulisan buruh pelabuhan. Secara default, ini disetel ke "false"
. Catatan : pembuatan kueri openCypher masih dalam versi beta dan mungkin tidak berfungsi seperti yang diharapkan, serta meningkatkan potensi jawaban berhalusinasi karena pembuatan kode yang buruk. Gunakan dengan hati-hati, dan hanya di lingkungan non-produksi.
CoPilot ramah terhadap pengguna teknis dan non-teknis. Ada antarmuka obrolan grafis serta akses API ke CoPilot. Dari segi fungsi, CoPilot dapat menjawab pertanyaan Anda dengan memanggil pertanyaan yang ada di database (InquiryAI), membuat grafik pengetahuan dari dokumen Anda (SupportAI), dan menjawab pertanyaan pengetahuan berdasarkan dokumen Anda (SupportAI).
Silakan merujuk ke dokumentasi resmi kami tentang cara menggunakan CoPilot.
TigerGraph CoPilot dirancang agar mudah diperluas. Layanan ini dapat dikonfigurasi untuk menggunakan penyedia LLM yang berbeda, skema grafik yang berbeda, dan alat LangChain yang berbeda. Layanan ini juga dapat diperluas untuk menggunakan layanan penyematan yang berbeda, layanan pembuatan LLM yang berbeda, dan alat LangChain yang berbeda. Untuk informasi selengkapnya tentang cara memperluas layanan, lihat Panduan Pengembang.
Sekumpulan tes disertakan dalam direktori tests
. Jika Anda ingin menambahkan lebih banyak tes, silakan lihat panduannya di sini. Skrip shell run_tests.sh
juga disertakan dalam folder yang merupakan driver untuk menjalankan pengujian. Cara termudah untuk menggunakan skrip ini adalah dengan menjalankannya di Docker Container untuk pengujian.
Anda dapat menjalankan pengujian untuk setiap layanan dengan masuk ke tingkat teratas direktori layanan dan menjalankan python -m pytest
misalnya (dari tingkat atas)
cd copilot
python -m pytest
cd ..
Pertama, pastikan semua file konfigurasi penyedia layanan LLM Anda berfungsi dengan baik. Konfigurasi akan dipasang untuk diakses oleh container. Pastikan juga semua dependensi seperti database dan Milvus sudah siap. Jika tidak, Anda dapat menjalankan file penulisan buruh pelabuhan yang disertakan untuk membuat layanan tersebut.
docker compose up -d --build
Jika Anda ingin menggunakan Bobot dan Bias untuk mencatat hasil pengujian, kunci API WandB Anda perlu disetel dalam variabel lingkungan di mesin host.
export WANDB_API_KEY=KEY HERE
Kemudian, Anda dapat membuat container docker dari file Dockerfile.tests
dan menjalankan skrip pengujian di container tersebut.
docker build -f Dockerfile.tests -t copilot-tests:0.1 .
docker run -d -v $( pwd ) /configs/:/ -e GOOGLE_APPLICATION_CREDENTIALS=/GOOGLE_SERVICE_ACCOUNT_CREDS.json -e WANDB_API_KEY= $WANDB_API_KEY -it --name copilot-tests copilot-tests:0.1
docker exec copilot-tests bash -c " conda run --no-capture-output -n py39 ./run_tests.sh all all "
Untuk mengedit tes apa yang dijalankan, seseorang dapat meneruskan argumen ke skrip ./run_tests.sh
. Saat ini, seseorang dapat mengonfigurasi layanan LLM apa yang akan digunakan (default untuk semua), skema apa yang akan diuji (default untuk semua), dan apakah akan menggunakan Bobot dan Bias untuk pencatatan (default ke true). Petunjuk opsi dapat ditemukan di bawah:
Parameter pertama untuk run_tests.sh
adalah LLM yang akan diuji. Default untuk all
. Pilihannya adalah:
all
- jalankan tes terhadap semua LLMazure_gpt35
- menjalankan pengujian terhadap GPT-3.5 yang dihosting di Azureopenai_gpt35
- menjalankan pengujian terhadap GPT-3.5 yang dihosting di OpenAIopenai_gpt4
- menjalankan pengujian pada GPT-4 yang dihosting di OpenAIgcp_textbison
- menjalankan pengujian pada text-bison yang dihosting di GCP Parameter kedua pada run_tests.sh
adalah grafik apa yang akan diuji. Default untuk all
. Pilihannya adalah:
all
- menjalankan pengujian terhadap semua grafik yang tersediaOGB_MAG
- Kumpulan data makalah akademis disediakan oleh: https://ogb.stanford.edu/docs/nodeprop/#ogbn-mag.DigtialInfra
- Kumpulan data kembar digital infrastruktur digitalSynthea
- Kumpulan data kesehatan sintetis Jika Anda ingin mencatat hasil pengujian ke Bobot dan Bias (dan memiliki pengaturan kredensial yang benar di atas), parameter terakhir ke run_tests.sh
secara otomatis ditetapkan secara default ke true. Jika Anda ingin menonaktifkan logging Bobot dan Bias, gunakan false
.
Jika Anda ingin berkontribusi pada TigerGraph CoPilot, silakan baca dokumentasinya di sini.