spark ai
1.0.0
用於在 Apache Spark 之上建立生成式 AI 應用程式的工具箱。
許多開發人員和公司正在嘗試利用法學碩士來增強他們現有的應用程式或建立全新的應用程式。感謝法學碩士,他們中的大多數人不再需要訓練新的機器學習模型。然而,主要挑戰仍然是數據和基礎設施。這包括資料攝取、轉換、向量化、查找和模型服務。
在過去的幾個月裡,業界出現了大量新工具和框架來幫助應對這些挑戰。然而,它們都不容易使用、部署到生產,也不能處理資料規模。
該專案旨在提供一個包含 Spark 擴充功能、資料來源和實用程式的工具箱,以便在 Spark 上輕鬆為生成式 AI 應用程式建立強大的資料基礎架構。
任何人都可以開始建立自己的生成式人工智慧應用程式的完整範例。
請在此閱讀我們對即時工程、法學碩士和低程式碼的想法。
目前,該專案主要針對 PySpark 用戶,但是,由於它還具有高效能連接器,因此 Spark 叢集上必須存在 PySpark 和 Scala 依賴項。
from spark_ai . webapps . slack import SlackUtilities
# Batch version
slack = SlackUtilities ( token = 'xoxb-...' , spark = spark )
df_channels = slack . read_channels ()
df_conversations = slack . read_conversations ( df_channels )
# Live streaming version
df_messages = ( spark . readStream
. format ( 'io.prophecy.spark_ai.webapps.slack.SlackSourceProvider' )
. option ( 'token' , 'xapp-...' )
. load ())
from spark_ai . llms . openai import OpenAiLLM
from spark_ai . dbs . pinecone import PineconeDB
OpenAiLLM ( api_key = 'sk-...' ). register_udfs ( spark = spark )
PineconeDB ( '8045...' , 'us-east-1-aws' ). register_udfs ( self . spark )
( df_conversations
# Embed the text from every conversation into a vector
. withColumn ( 'embeddings' , expr ( 'openai_embed_texts(text)' ))
# Do some more pre-processing
...
# Upsert the embeddings into Pinecone
. withColumn ( 'status' , expr ( 'pinecone_upsert( ' index-name ' , embeddings)' ))
# Save the status of the upsertion to a standard table
. saveAsTable ( 'pinecone_status' ))
df_messages = spark . readStream
. format ( "io_prophecy.spark_ai.SlackStreamingSourceProvider" )
. option ( "token" , token )
. load ()
# Handle a live stream of messages from Slack here
支援的資料來源:
支援的向量資料庫:
支持的法學碩士:
支援的應用介面:
還有更多即將推出(請隨時提出問題)!
✅:通用; ?:測試版可用性; ?️:路線圖;