Perplejidad del código abierto
Sitio web · Discord · Reddit
Nuestro objetivo es establecer la funcionalidad principal y las características esenciales. A medida que continuamos desarrollando Omniplex, nos comprometemos a implementar las mejores prácticas, perfeccionar el código base e introducir nuevas funciones para mejorar la experiencia del usuario.
Para ejecutar el proyecto, modifique el código en el componente Chat para usar // Development Code
.
git clone [email protected]:[YOUR_GITHUB_ACCOUNT]/omniplex.git
yarn
.env.local
BING_API_KEY=
OPENAI_API_KEY=
OPENWEATHERMAP_API_KEY=
ALPHA_VANTAGE_API_KEY=
FINNHUB_API_KEY=
yarn dev
Esta es solo una forma ingeniosa pero muy fácil de implementar. Agregaremos una forma más sólida de agregar complementos en el futuro. No dude en comprenderlo con el complemento de muestra que hemos agregado.
types.ts
para incluir los nuevos tipos de datos del complemento.tools
en api
para incluir la nueva llamada a la función del complemento.api.ts
en utils
para incluir los nuevos datos del complemento.chatSlice.ts
en store
para incluir el nuevo reductor de complementos.components
para la interfaz de usuario del complemento.chat.tsx
para manejar el nuevo complemento en useEffect
.source.ts
para usar la interfaz de usuario del complemento.data.ts
en utils
para mostrarlos en la pestaña del complemento. ANTHROPIC_API_KEY= ******
chat
en api
import Anthropic from "@anthropic-ai/sdk" ;
import { OpenAIStream , StreamingTextResponse } from "ai" ;
const anthropic = new Anthropic ( {
apiKey : process . env . ANTHROPIC_API_KEY ,
} ) ;
export const runtime = "edge" ;
export async function POST ( req : Request ) {
const {
messages ,
model ,
temperature ,
max_tokens ,
top_p ,
frequency_penalty ,
presence_penalty ,
} = await req . json ( ) ;
const response = await anthropic . messages . create ( {
stream : true ,
model : model ,
temperature : temperature ,
max_tokens : max_tokens ,
top_p : top_p ,
frequency_penalty : frequency_penalty ,
presence_penalty : presence_penalty ,
messages : messages ,
} ) ;
const stream = OpenAIStream ( response ) ;
return new StreamingTextResponse ( stream ) ;
}
data
en utils
export const MODELS = [
{ label : "Claude 3 Haiku" , value : "claude-3-haiku-20240307" } ,
{ label : "Claude 3 Sonnet" , value : "claude-3-sonnet-20240229" } ,
{ label : "Claude 3 Opus" , value : "claude-3-opus-20240229" } ,
] ;
Recientemente hicimos la transición del directorio de páginas al directorio de aplicaciones, lo que implicó cambios significativos en la estructura y arquitectura del proyecto. Como resultado, es posible que encuentre algunas inconsistencias o asperezas en el código base.
¡Agradecemos las contribuciones de la comunidad! Si desea contribuir a Openpanel, siga estos pasos:
Asegúrese de que su código siga nuestras convenciones de codificación y pase todas las pruebas antes de enviar una solicitud de extracción.
Este proyecto está bajo la licencia AGPL-3.0.
Si tiene alguna pregunta o sugerencia, no dude en comunicarse con nosotros en Contacto.
¡Feliz codificación!