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
支持的数据源:
支持的矢量数据库:
支持的法学硕士:
支持的应用接口:
还有更多即将推出(请随时提出问题)!
✅:通用; ?:测试版可用性; ?️:路线图;