Bem -vindo ao Repositório de Chat API Assistente do Openai! Este aplicativo de bate-papo inovador permite que os usuários interajam com um assistente de IA alimentado pelo mais recente modelo "GPT-4-1106-PREVEIGE". É um espaço emocionante em que a tecnologia encontra conversas, oferecendo uma experiência única de interação de IA.

Observe que este aplicativo está atualmente na fase beta e está em evolução continuamente. Estamos trabalhando diligentemente para aprimorar a experiência do usuário e adicionar novos recursos. Durante esta fase, você pode encontrar alguns soluços ou comportamento inesperado.
Este aplicativo está pronto para ser implantado com a Vercel, uma plataforma em nuvem para sites estáticos e funções sem servidor. A Vercel fornece uma maneira fácil de implantar seus aplicativos diretamente do seu repositório.
Para implantar este aplicativo com o Vercel, clique no botão "Implantar com vercel" abaixo. Isso o levará à plataforma Vercel, onde você será guiado pelo processo de implantação.
Observe que você precisará fornecer sua chave da API do OpenAI durante o processo de implantação. Essa chave é usada para autenticar as solicitações do seu aplicativo para a API OpenAI.
Além da chave da API do OpenAI, você também pode especificar um ID de assistente padrão durante o processo de implantação. Este ID determina qual assistente de IA é usado no aplicativo de bate -papo. Se você definir este ID, o aplicativo usará esse assistente para o bate -papo. Se você não definir esse ID, o aplicativo solicitará ao usuário inserir os detalhes do assistente.
Para implantar o aplicativo com a tecla API OpenAI e um ID de assistente codificado, clique no botão "Implantar com vercel" abaixo. Você será solicitado a inserir sua chave da API do OpenAI e seu ID de assistente.
Assistente de IA personalizado : Personalize o nome, modelo e descrição do assistente para uma experiência de bate -papo exclusiva.
Experiência interativa de bate -papo : envolva -se em conversas dinâmicas com o assistente de IA.
Respostas robustas da IA : Aproveitando o modelo "GPT-4-1106-PREVEIA" do OpenAI (contexto de 128K) para respostas inteligentes e com reconhecimento de contexto.
Upload de arquivos : os usuários podem fazer upload de arquivos para o assistente analisar.
Integração da visão do GPT-4 : Envie fotos para a IA e descreverá o que vê, fornecendo informações e compreensão do conteúdo visual. (Versão improvada em breve)
Chamadas de função : (em breve) Experimente funcionalidades interativas, como chamadas de API com base no contexto de bate -papo.
Interpretação de código : (em breve) o assistente pode executar o código PyTo.
git clone https://github.com/admineral/OpenAI-Assistant-API-Chat.git
npm install
.env no diretório raiz e adicione sua tecla API OpenAI: OPENAI_API_KEY=your_openai_api_key
npm run dev
Suas contribuições tornam este projeto prosperar. Seja relatando bugs, sugerindo recursos ou enviando alterações de código, toda a ajuda é muito apreciada.
Estamos ansiosos para aumentar esse projeto com o apoio e a criatividade da comunidade!
ChatManager.ts )startAssistant : inicializa o assistente de bate -papo, gerencia uploads de arquivos e lida com a criação de threads.sendMessage : envia mensagens do usuário para o assistente e atualiza o bate -papo.getChatState : Recupera o estado atual do bate -papo, incluindo mensagens e status de assistente.api.js )uploadImageAndGetDescription : carrega imagens e obtém descrições usando a API de visão GPT-4.createAssistant , createThread , runAssistant : lida com a criação assistente, gerenciamento de threads e operações assistentes.assistantModules.ts )prepareUploadFile : prepara e carrega arquivos para o assistente de bate -papo.initializeAssistant : inicializa um assistente de bate -papo com detalhes específicos.createChatThread : cria um tópico de bate -papo com uma mensagem inicial.chatModules.ts )submitUserMessage : envia mensagens do usuário para o bate -papo.fetchAssistantResponse : busca as mensagens mais recentes do assistente.updateChatState : atualiza o estado de bate -papo com novas mensagens. ChatManager.ts )ChatManager gerencia o estado de bate -papo e as operações.api.js )useChatState.ts para gerenciamento de estado.InputForm e MessageList interagem com ChatManager para exibir mensagens e lidar com entradas do usuário.ChatManager.ts ) : Componente central Gerenciando o estado de bate -papo e operações.api.js ) : Intermediário para interações da API.assistantModules.ts ) : lida com tarefas relacionadas ao assistente de bate -papo.chatModules.ts ) : gerencia as funcionalidades do bate -papo. ChatManager.tsEsta é a classe principal que gerencia o estado e as operações do bate -papo.
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 seja criada.startAssistant : inicia o assistente e configura o thread de bate -papo.sendMessage : alças enviando mensagens para o assistente.getChatState : recupera o estado atual do bate -papo.api.jsEste módulo contém funções para várias interações da API exigidas pelo aplicativo de bate -papo.
// 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 : carrega uma imagem codificada Base64 e obtém uma descrição.createAssistant : cria uma nova instância de assistente.assistantModules.tsContém funções relacionadas à preparação e gerenciamento do assistente de bate -papo.
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.tsGerencia as funcionalidades relacionadas ao bate-papo, lidando principalmente com mensagens.
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 e MessageList são componentes do React que criam a interface do usuário do aplicativo de bate -papo.Eles usam ganchos e estados para gerenciar as interações do usuário e exibir mensagens de bate -papo.
/api/*.ts )Esses arquivos definem várias rotas de API para lidar com tarefas, como criar assistentes, listar mensagens, verificar status de execução, etc. Eles interagem com a API do OpenAI e fornecem pontos de extremidade para o front -end.