Добро пожаловать в репозиторий API API Assi Api Api! Это инновационное приложение в чате позволяет пользователям взаимодействовать с AI Assistant, работающим на последней модели «GPT-4-1106-Preview» OpenAI. Это захватывающее пространство, где технология встречает разговор, предлагая уникальный опыт взаимодействия ИИ.
Обратите внимание, что это приложение в настоящее время находится на бета -фазе и постоянно развивается. Мы усердно работаем над улучшением пользовательского опыта и добавляем новые функции. На этом этапе вы можете столкнуться с некоторыми сбоями или неожиданным поведением.
Это приложение готово к развертыванию с Vercel, облачной платформой для статических сайтов и без серверов. Vercel предоставляет простой способ развернуть ваши приложения непосредственно из вашего репозитория.
Чтобы развернуть это приложение с Vercel, нажмите кнопку «Развернуть с Vercel» ниже. Это приведет вас к платформе Vercel, где вы будете руководствоваться процессом развертывания.
Обратите внимание, что вам нужно предоставить свой ключ API OpenAI в процессе развертывания. Этот ключ используется для аутентификации запросов вашего приложения в API OpenAI.
В дополнение к ключу API OpenAI, вы также можете указать идентификатор помощника по умолчанию в процессе развертывания. Этот идентификатор определяет, какой ассистент ИИ используется в приложении чата. Если вы установите этот идентификатор, приложение будет использовать этого помощника для чата. Если вы не установите этот идентификатор, приложение предложат пользователю ввести данные помощника.
Чтобы развернуть приложение с помощью клавиши API OpenAI и идентификатор помощника в твердом кодировании, нажмите кнопку «Развернуть с Vercel» ниже. Вам будет предложено ввести как ваш ключ API OpenAI, так и ваш помощник.
Персонализированный помощник по искусственному интеллекту : настроить имя, модель и описание помощника для уникального чата.
Интерактивный опыт чата : участвовать в динамических разговорах с помощником искусственного интеллекта.
Надежные ответы ИИ : использование модели Openai "GPT-4-1106-Preview" (контекст 128K) для интеллектуальных, контекстных ответов в чате.
Загрузка файлов : пользователи могут загружать файлы для помощника для анализа.
Интеграция Vision GPT-4 : отправьте изображения в ИИ, и она описывает то, что он видит, предоставляя понимание и понимание визуального контента. (Высоковеченная версия скоро)
Функциональные вызовы : (скоро) Опыт интерактивных функций, таких как вызовы API на основе контекста чата.
Интерпретация кода : (скоро) Помощник может выполнить код Pytho.
git clone https://github.com/admineral/OpenAI-Assistant-API-Chat.git
npm install
.env
в корневом каталоге и добавьте свой ключ API OpenAI: OPENAI_API_KEY=your_openai_api_key
npm run dev
Ваш вклад делает этот проект процветать. Будь то сообщение о том, что это сообщают об ошибках, предлагают функции или отправление изменений кода, каждый кусочек помощи высоко ценится.
Мы с нетерпением ждем возможности развития этого проекта с поддержкой сообщества и творчеством!
ChatManager.ts
)startAssistant
: инициализирует помощника по чату, управляет загрузкой файлов и обрабатывает создание потоков.sendMessage
: отправляет сообщения пользователя помощнику и обновляет чат.getChatState
: Получает текущее состояние чата, включая сообщения и помощник статуса.api.js
)uploadImageAndGetDescription
: загружает изображения и получает описания, используя API GPT-4 Vision.createAssistant
, createThread
, runAssistant
: обрабатывает помощник создания, управление потоками и помощники.assistantModules.ts
)prepareUploadFile
: подготовка и загружает файлы для ассистента чата.initializeAssistant
: инициализирует помощника по чату с конкретными деталями.createChatThread
: создает ветку чата с начальным сообщением.chatModules.ts
)submitUserMessage
: подчиняет сообщения пользователя в чате.fetchAssistantResponse
: получает последние сообщения от помощника.updateChatState
: обновляет состояние чата с помощью новых сообщений. ChatManager.ts
)ChatManager
управляет состоянием чата и операциями.api.js
)useChatState.ts
для управления государством.InputForm
и MessageList
взаимодействуют с ChatManager
для отображения сообщений и обработки вводов пользователей.ChatManager.ts
) : центральный компонент управление состоянием чата и операциями.api.js
) : посредник для взаимодействия API.assistantModules.ts
) : обрабатывает задачи, связанные с помощником чата.chatModules.ts
) : управляет функциональностью чата. ChatManager.ts
Это основной класс, управляющий состоянием чата и операциями.
class ChatManager {
private state : ChatState ;
private static instance : ChatManager | null = null ;
// Singleton pattern to ensure a single ChatManager instance
private constructor ( setChatMessages : ( messages : any [ ] ) => void , setStatusMessage : ( message : string ) => void ) {
this . state = {
/* State initialization */
} ;
console . log ( 'ChatManager initialized' ) ;
}
// Method to get the current instance of ChatManager
public static getInstance ( setChatMessages : ( messages : any [ ] ) => void , setStatusMessage : ( message : string ) => void ) : ChatManager {
if ( this . instance === null ) {
this . instance = new ChatManager ( setChatMessages , setStatusMessage ) ;
}
return this . instance ;
}
// Method to start the assistant
async startAssistant ( assistantDetails : any , file : File | null , initialMessage : string ) : Promise < void > {
// ... Function logic including API calls to initialize assistant and create chat thread
}
// Method to send a message
async sendMessage ( input : string ) : Promise < void > {
// ... Function logic to handle message sending
}
// Method to get the current chat state
getChatState ( ) : ChatState {
console . log ( 'Getting chat state' ) ;
return this . state ;
}
}
ChatManager
.startAssistant
: инициирует помощника и устанавливает ветку чата.sendMessage
: обрабатывает отправку сообщений помощнику.getChatState
: Получает текущее состояние чата.api.js
Этот модуль содержит функции для различных взаимодействий API, требуемых приложением чата.
// Example of an API function
export const uploadImageAndGetDescription = async ( base64Image ) => {
// Code to upload an image and get a description using the OpenAI API
} ;
export const createAssistant = async ( assistantDetails ) => {
// Code to create an assistant
} ;
// Other API functions like 'createThread', 'runAssistant', etc.
uploadImageAndGetDescription
: загружает кодированное изображение BASE64 и получает описание.createAssistant
: создает новый помощник экземпляра.assistantModules.ts
Содержит функции, связанные с подготовкой и управлением помощником чата.
export const prepareUploadFile = async ( file : File , setStatusMessage : ( message : string ) => void ) : Promise < string > => {
// Logic to prepare and upload a file for the chat assistant
} ;
export const initializeAssistant = async ( assistantDetails , fileId ) : Promise < string > => {
// Logic to initialize an assistant with given details
} ;
export const createChatThread = async ( inputMessage : string ) : Promise < string > => {
// Logic to create a chat thread
} ;
chatModules.ts
Управляет функциональными возможностями, связанными с чатом, в первую очередь имеет дело с сообщениями.
export const submitUserMessage = async ( input : string , threadId : string ) : Promise < void > => {
// Logic to submit a user's message to the chat
} ;
export const fetchAssistantResponse = async ( runId : string , threadId : string ) : Promise < string > => {
// Logic to fetch the latest messages from the assistant
} ;
export const updateChatState = ( prevMessages : Message [ ] , newMessages : Message [ ] , setChatMessages : ( messages : any [ ] ) => void ) : Promise < void > => {
// Logic to update the chat state with new messages
} ;
WelcomeForm
, InputForm
и MessageList
- это компоненты React, которые создают пользовательский интерфейс приложения чата.Они используют крючки и состояния для управления взаимодействиями с пользователями и отображения сообщений чата.
/api/*.ts
)Эти файлы определяют различные маршруты API для выполнения задач, таких как создание помощников, перечисление сообщений, проверка статуса запуска и т. Д. Они взаимодействуют с API OpenAI и предоставляют конечные точки для вызова