IA

Iniciado por Wexex5, 25 Agosto 2015, 17:55 PM

0 Miembros y 1 Visitante están viendo este tema.

Wexex5

Estoy ultimamente pensando en crear una IA algo complicado si...
Esta IA estara mas enfocado a la asistencia del usuario que en el leguaje humano.
Mi idea es crear una IA en el que pueda ejecutar aplicaciones, tareas y hablar con ella.

Un ejemplo seria:

IA: Usuario, la conexion cableada se a desconectado...
Usuario: conecta la inalambrica
IA: Conectando por la inalambrica...


Algo asi que te notifique la IA de todo lo que pasa o simplemente que te hiciera el trabajo.

copia del pen proyectos
IA: Copiando...
IA: A donde lo pego?
a mi escritorio

Solo tendras que darle instrucciones a la IA.
Como veis mi idea?




ivancea96

Al final es convertir lenguaje humano a comandos.

iUDEX

Algo así como un reconocedor de voz, no muy extraño en estos tiempos.

En vez de:

CitarIA: Copiando...
IA: A donde lo pego?
a mi escritorio

Diría:

CitarUsuario: Copia X archivo a escritorio.
IA: Copiando...

Repito, no es algo nuevo, pero ánimo!

:D

Namasté, criatura.

Eleкtro

#3
Cita de: Wexex5 en 25 Agosto 2015, 17:55 PMUn ejemplo seria:

IA: Usuario, la conexion cableada se a desconectado...
Usuario: conecta la inalambrica
IA: Conectando por la inalambrica...

Imagino que será para Windows (no has explicado nada, ni siquiera en que lenguaje lo piensas hacer, odio las preguntas que ni siquiera comentan ese detalle tan esencial), pues entonces deberás desenvolverte cómo un experto con la API de Windows, para escuchar ese tipo de eventos.

¿Y en que lenguaje?, por que eso en cualquier lenguaje limitado no lo vas a poder hacer, a menos que hagas una cutrez con un timer/temporizador para comprobar cada X intervalo si el adaptador de red (de entre los que puedan haber) está conectado o no.

Tu idea es bastante más compleja de lo que seguramente en un principio a ti te parece, o mejor dicho es muy laboriosa ...mucho, ya que solamente el primer "comando" que se te ha ocurrido para darnos de ejemplo ya conlleva mucho trabajo de desarrollo (a menos que se opte por hacer la cutrez mencionada de arriba, en apenas 5 minutos), y se te ocurrirán muchos más "comandos" que implementar, idear y desarrollar, sobre todo investigar.

En resumen tendrías que estar suscrito a los eventos del sistema e informar de ellos, tal vez incluso para algunas futuras ideas "comunes" necesites aplicar técnicas de API hooking o API override en las funciones de la API de Windows, pero bueno, aquí tienes algo de info para empezar con ese "comando" de la conectividad de red de la forma en la que debería hacerse, usando la API NLM (Network List Manager):

Cita de: https://msdn.microsoft.com/en-us/library/ee264321%28VS.85%29.aspxUsing the NLM API to make your applications network-aware

Understanding what type of decisions your application needs to make based on connectivity information will determine how you go about using the NLM API. Which of the following best describes your application needs?

   My application needs to be quickly informed of changing networking conditions.
   My application needs to perform a quick check of what the network conditions are just once.
   My application needs to do both.
Network Awareness in Windows Vista and Windows 7 - MSDN

Y aquí la documentación y definiciones de los miembros que la componen:
Network List Manager API Reference - MSDN

Aunque por otro lado, si eliges la plataforma .Net entonces Microsoft  pone muuuuy fácil con los eventos públicos compartidos System.Net.NetworkInformation.NetworkChange.NetworkAvailabilityChanged y System.Net.NetworkInformation.NetworkChange.NetworkAddressChanged que puedes encontrar en la librería de clases de .Net Framework, los cuales no te informan del estado de la red, pero si del cambio, y con eso ya puedes implementar una lógica personalizada sin recurrir forzosamente a la WinAPI.

Aquí un ejemplo de uso en C#, el cual se suscribe a dichos eventos y, cuando se disparan, se llama a la función personalizada "IsNetworkAvailable" donde emplea una sencilla lógica para determinar si hay al menos una conexión activa:
http://www.codeproject.com/Articles/64975/Detect-Internet-Network-Availability




Cita de: Wexex5 en 25 Agosto 2015, 17:55 PMComo veis mi idea?

Toda idea que implique una A.I. a la que poder darle órdenes en el PC es simplemente genial, es una buena idea, aunque en realidad sería Automación ...no creo que se le deba denominar inteligencia artificial.

Mi única objeción es la que ya he comentado, que si pretendes hacerlo bien (no quiero decir profesionálmente, pero simplemente bien, no con cutreces típicas) entonces te va a llevar mucho más trabajo del que te puedas imaginar, pero con tiempo y dedicación todo se puede lograr.

Saludos