Envoltorio de API .NET para el nuevo Bing Chat con tecnología de inteligencia artificial de Microsoft.
Advertencia FUERA DE ACTUALIZACIÓN Y MANTENIMIENTO
Actualmente, la implementación no está sincronizada con los cambios recientes de la API, lo que genera errores frecuentes y activa captcha. Está previsto investigar esto y alinear la implementación con los clientes API oficiales (aplicación iOS y navegador) para reducir estos problemas o mitigarlos por completo si existe tal posibilidad.Además, este repositorio carece de mantenedores desde hace mucho tiempo. Si alguien quiere hacerse cargo, por favor póngase en contacto conmigo.
Advertencia Esta biblioteca no es oficial y depende en gran medida de la ingeniería inversa. Úselo bajo su propio riesgo.
Nota Desde el lanzamiento público de BingChat , ya no se requiere una cookie válida. Puede utilizar este paquete sin ninguna autenticación.
Instale este paquete a través del administrador de paquetes NuGet o la CLI de dotnet:
dotnet add package --prerelease BingChat
Entonces,
using BingChat ;
// Construct the chat client
var client = new BingChat Client ( new BingChat ClientOptions
{
// Tone used for conversation
Tone = BingChat Tone . Balanced ,
} ) ;
var message = "Do you like cats?" ;
var answer = await client . AskAsync ( message ) ;
Console . WriteLine ( $ "Answer: { answer } " ) ;
El código anterior envía un mensaje a la IA del chat y obtiene la respuesta de este.
Este método crea una conversación única y la descarta cuando se completa. Si desea continuar chateando en el mismo contexto (al igual que el comportamiento en la interfaz web), debe crear una conversación compartida:
// Create a conversation, so we can continue chatting in the same context.
var conversation = await client . CreateConversation ( ) ;
var firstMessage = "Do you like cats?" ;
var answer = await conversation . AskAsync ( firstMessage ) ;
Console . WriteLine ( $ "First answer: { answer } " ) ;
await Task . Delay ( TimeSpan . FromSeconds ( 5 ) ) ;
var secondMessage = "What did I just say?" ;
answer = await conversation . AskAsync ( secondMessage ) ;
Console . WriteLine ( $ "Second answer: { answer } " ) ;
¡También desarrollamos una increíble herramienta de línea de comandos para ti! Vea la vista previa a continuación:
Puede instalar la CLI ejecutando el siguiente comando simplemente:
dotnet tool install -g --prerelease dotnet- BingChat
Luego inicie la CLI:
dotnet BingChat
harmonyv3
habilita el modelo anterior que tiene mejor rendimiento .SendAsync(..)
para permitir acceso detallado y control sobre el estado de la conversación. Puede configurar su propia cookie para interactuar con el servidor BingChat , en lugar de generar una aleatoria.
Para obtenerlo, puede ir a www.bing.com, iniciar sesión en una cuenta que tenga acceso y luego abrir Herramientas de desarrollador (F12) > pestaña Aplicación > Almacenamiento > Cookies, buscar la cookie denominada _U
y copiar su valor. Luego páselo al constructor de BingChat ClientOptions
.
Hay múltiples razones. Puede seguir estos pasos para solucionar el problema.
Actualice la página web, confirme que el valor '_U' esté actualizado y copiado correctamente, y vuelva a intentarlo.
Si está utilizando un proxy (VPN), intente configurar el proxy global y vuelva a intentarlo. El código es el siguiente:
HttpClient . DefaultProxy = new WebProxy ( "127.0.0.1:8807" ) ; //Your proxy address and port
Busque otra cookie llamada 'KievRPSSecAuth', establezca su valor y vuelva a intentarlo. El código es el siguiente:
var client = new BingChat Client ( new BingChat ClientOptions {
// The "_U" cookie's value
CookieU = strU ,
// The "KievRPSSecAuth" cookie's value
CookieKievRPSSecAuth = strKievRPSSecAuth ,
} ) ;
Abra el menú del navegador> Extensiones. Busque 'Editor de cookies' e instálelo. Vaya a la página web de Bing Chat y exporte todas las cookies a un archivo local en formato JSON. Establezca el valor de la ruta del archivo de la siguiente manera (los valores "_U" y "KievRPSSecAuth" no son necesarios en este momento):
var client = new BingChat Client ( new BingChat ClientOptions {
// The exported cookie file path
CookieFilePath = strFilePath ,
} ) ;
Gracias a estos contribuyentes por desarrollar o mejorar esta biblioteca:
Si tiene alguna idea sobre este proyecto, no dude en abrir un PR y compartir con nosotros :D
Este proyecto está bajo licencia MIT. ¡Nosotros ❤ código abierto!