Faits:
Faits:
A. Par un jugement rendu le 13 août 2002, le Tribunal de police de l'arrondissement de Lausanne a condamné A._, pour lésions corporelles simples qualifiées commises en excès de légitime défense (art. 33 al. 2 et 123 ch. 2 CP), à la peine de vingt jours d'arrêts avec sursis pendant deux ans. Ces lésions avaient été infligées par A._ à B._ au cours d'une bagarre dans la nuit du 12 au 13 février 2000, vers 3.30 heures. Les deux protagonistes s'étaient déjà affrontés une première fois vers 23.30 heures à Lausanne; à cette occasion, B._ avait mordu et sectionné la dernière phalange de l'auriculaire gauche de A._. Ce dernier avait reçu des soins dans une clinique puis, immédiatement après son opération, il s'était rendu auprès de son agresseur, sur son lieu de travail, dans le but d'avoir une explication avec lui. Cette nouvelle discussion a dégénéré en bagarre. B._ a mordu le pouce gauche de A._; celui-ci, ayant demandé en vain à B._ de lâcher prise, s'est emparé d'un couteau de cuisine se trouvant dans le local et l'a frappé à la hauteur de l'omoplate gauche, provoquant une plaie superficielle.
Par le même jugement du 13 août 2002, le Tribunal de police a condamné B._, pour lésions corporelles graves par négligence (principalement), à la peine de 2 mois d'emprisonnement avec sursis pendant 2 ans. Le Tribunal de police a en outre condamné B._ à payer 2'500 fr. à A._ au titre de réparation du tort moral. Ce dernier a par ailleurs été condamné à payer à B._ une somme de 2'500 fr. au titre de réparation de son dommage. Les dépens ont été compensés.
Pendant l'enquête, A._ était assisté d'un défenseur d'office. Peu avant les débats du Tribunal de police, il a mandaté pour sa défense Me Eric Stauffacher, avocat à Lausanne.
Pendant l'enquête, A._ était assisté d'un défenseur d'office. Peu avant les débats du Tribunal de police, il a mandaté pour sa défense Me Eric Stauffacher, avocat à Lausanne.
B. A._, toujours représenté par Me Stauffacher, a recouru contre le jugement du Tribunal de police auprès du Tribunal cantonal du canton de Vaud. La Cour de cassation pénale de ce tribunal a admis ce recours par un arrêt rendu le 9 décembre 2002 (dont les considérants ont été envoyés aux parties le 19 juin 2003). En conséquence, elle a libéré A._ du chef d'accusation de lésions corporelles simples qualifiées et lui a alloué ses conclusions civiles en condamnant B._ à lui payer la somme de 5'000 fr. au titre de réparation du tort moral ainsi que des dépens, par 1'200 fr. La Cour cantonale a encore réformé le jugement attaqué, à propos de la réparation du dommage subi par B._, pour donner acte à ce dernier de ses réserves civiles à l'encontre du recourant.
B. A._, toujours représenté par Me Stauffacher, a recouru contre le jugement du Tribunal de police auprès du Tribunal cantonal du canton de Vaud. La Cour de cassation pénale de ce tribunal a admis ce recours par un arrêt rendu le 9 décembre 2002 (dont les considérants ont été envoyés aux parties le 19 juin 2003). En conséquence, elle a libéré A._ du chef d'accusation de lésions corporelles simples qualifiées et lui a alloué ses conclusions civiles en condamnant B._ à lui payer la somme de 5'000 fr. au titre de réparation du tort moral ainsi que des dépens, par 1'200 fr. La Cour cantonale a encore réformé le jugement attaqué, à propos de la réparation du dommage subi par B._, pour donner acte à ce dernier de ses réserves civiles à l'encontre du recourant.
C. Le 24 décembre 2002, A._ a adressé au Tribunal d'accusation du Tribunal cantonal du canton de Vaud une demande tendant au paiement (par le canton) d'une indemnité de 6'317 fr. 85, fondée sur l'art. 163a du Code de procédure pénale (CPP/VD). Ce montant correspond au total des honoraires et débours facturés par Me Stauffacher à son client pour l'exécution du mandat entre le 24 juin et le 24 décembre 2002.
Par un arrêt rendu le 29 août 2003, le Tribunal d'accusation a partiellement admis la demande et il a alloué à A._ la somme de 750 fr., à la charge de l'Etat de Vaud.
Par un arrêt rendu le 29 août 2003, le Tribunal d'accusation a partiellement admis la demande et il a alloué à A._ la somme de 750 fr., à la charge de l'Etat de Vaud.
D. Agissant par la voie du recours de droit public, A._ demande au Tribunal fédéral d'annuler l'arrêt attaqué ou de le réformer en ce sens qu'une indemnité de 6'317 fr. 85 lui est allouée. Il se plaint d'une application arbitraire de l'<ref-law>/VD, d'une violation du principe de la présomption d'innocence consacré aux art. 32 al. 1 Cst. et 6 par. 2 CEDH, ainsi que d'une violation de garanties constitutionnelles en matière d'assistance judiciaire gratuite (art. 29 al. 3 Cst. et art. 6 par. 3 let. c CEDH, en relation avec l'art. 8 Cst.).
Invités à répondre, le Procureur général du canton de Vaud conclut au rejet du recours et le Tribunal d'accusation se réfère à son arrêt.
Invités à répondre, le Procureur général du canton de Vaud conclut au rejet du recours et le Tribunal d'accusation se réfère à son arrêt.
E. Le recourant demande l'assistance judiciaire au sens de l'art. 152 OJ.

Le Tribunal fédéral considère en droit:
Le Tribunal fédéral considère en droit:
1. Formé en temps utile, contre une décision finale prise en dernière instance cantonale, par le demandeur de l'indemnité litigieuse, le recours de droit public satisfait aux conditions de recevabilité des art. 86 à 89 OJ. Il y a lieu d'entrer en matière.
1. Formé en temps utile, contre une décision finale prise en dernière instance cantonale, par le demandeur de l'indemnité litigieuse, le recours de droit public satisfait aux conditions de recevabilité des art. 86 à 89 OJ. Il y a lieu d'entrer en matière.
2. Le recourant se plaint d'une application arbitraire et contraire à la présomption d'innocence de l'<ref-law>/VD.
2.1 Après la fin de la procédure pénale et l'acquittement du recourant, le Tribunal d'accusation a été requis de statuer sur une demande d'indemnité sur la base de l'<ref-law>/VD, dont le premier alinéa a la teneur suivante:
L'inculpé et l'accusé libérés des fins de la poursuite pénale, qui ne l'ont ni provoquée ni compliquée fautivement, peuvent obtenir de l'Etat, du plaignant ou de la partie civile une indemnité équitable pour le préjudice résultant de l'instruction et pour leurs frais de défense. L'article 159, alinéa premier, est applicable par analogie.
L'<ref-law>/VD, qui fait partie des dispositions réglant le sort des frais de la procédure pénale, est ainsi libellé:
Le plaignant et la partie civile peuvent, même si le prévenu est condamné à une peine, être astreints à supporter une partie des frais si l'équité l'exige, notamment s'ils ont agi par dol, témérité ou légèreté ou s'ils ont compliqué l'instruction.
Dans le cas particulier, seule une indemnité pour les frais de défense est réclamée.
2.2 Dans l'arrêt attaqué, le Tribunal d'accusation considère que le recourant était fondé à mandater un avocat pour la cause pénale, compte tenu des circonstances, à savoir de la complexité de l'affaire, de la gravité de l'accusation et de ses propres capacités. Lors du second affrontement entre les protagonistes, le recourant n'a fait que se défendre légitimement; il n'a pas, par la suite, compliqué fautivement l'enquête mais il a néanmoins provoqué en partie la poursuite pénale, par un comportement inadéquat. En effet, en se rendant après une première échauffourée auprès de son agresseur dans le but d'avoir une explication avec lui, il devait s'attendre au risque d'une reprise de l'altercation et à l'éventualité d'une nouvelle bagarre. Aussi le Tribunal d'accusation a-t-il fixé une indemnité inférieure au montant effectif des frais de défense.
2.3 La prise en considération d'un comportement inadéquat de l'accusé acquitté, le cas échéant de sa témérité ou de sa légèreté (cf. <ref-law>/VD), n'est pas contraire à la présomption d'innocence si la décision sur l'indemnité ne laisse pas entendre, par sa motivation, que le demandeur est vraisemblablement coupable de l'infraction qui lui était reprochée (cf. <ref-ruling> consid. 2f p. 175; Antoine Thélin, L'indemnisation du prévenu acquitté en droit vaudois, JdT 1994 III 102). En l'occurrence, il est manifeste que le Tribunal d'accusation a motivé sa décision sans mettre en doute l'état de légitime défense; il n'a donc pas violé les garanties constitutionnelles relatives à la présomption d'innocence (art. 32 al. 1 Cst., art. 6 par. 2 CEDH).
2.4 Le droit cantonal prévoit une indemnisation équitable, qui peut donc être inférieure à la réparation complète du dommage. Dans la détermination du montant à allouer, la juridiction compétente jouit d'un large pouvoir d'appréciation, toutefois limité par l'interdiction de l'arbitraire (art. 9 Cst.; pour la définition jurisprudentielle de cette notion, cf. <ref-ruling> consid. 2.1 p. 9; <ref-ruling> consid. 2.1 p. 275 et les arrêts cités).
Dans l'arrêt attaqué, le montant des honoraires et débours de l'avocat du recourant n'est pas critiqué. Il faut en déduire que, pour le Tribunal d'accusation, ils ne sont pas indûment élevés. Cela étant, même si l'on y ajoute le montant des dépens alloués pour la procédure devant le Tribunal de police, après la réforme du jugement par la Cour de cassation pénale (1'200 fr.), l'indemnité fixée (750 fr.) ne tient pas suffisamment compte du rôle mineur joué par le recourant dans le déroulement des faits à l'origine de l'enquête pénale, face au comportement agressif de l'autre protagoniste, responsable de façon prépondérante de l'ouverture de cette enquête. La disproportion entre le montant accordé pour les frais de défense et leur coût effectif pour le recourant est telle - elle est en effet largement inférieure à la moitié de ces frais - que la décision attaquée doit être qualifiée d'arbitraire. Le recours de droit public doit donc être admis.
2.5 L'admission du recours entraîne l'annulation de l'arrêt attaqué car, vu la nature en principe exclusivement cassatoire de ce moyen de droit (cf. <ref-ruling> consid. 2c p. 5; 127 I 279 consid. 1b p. 282 et les arrêts cités), le Tribunal fédéral ne peut pas le réformer ni donner des instructions au Tribunal d'accusation. Il n'y a donc pas lieu d'examiner les autres griefs invoqués par le recourant.
2.5 L'admission du recours entraîne l'annulation de l'arrêt attaqué car, vu la nature en principe exclusivement cassatoire de ce moyen de droit (cf. <ref-ruling> consid. 2c p. 5; 127 I 279 consid. 1b p. 282 et les arrêts cités), le Tribunal fédéral ne peut pas le réformer ni donner des instructions au Tribunal d'accusation. Il n'y a donc pas lieu d'examiner les autres griefs invoqués par le recourant.
3. L'Etat de Vaud est dispensé par la loi du paiement des frais judiciaires (art. 156 al. 2 OJ). Il doit en revanche être condamné à payer des dépens au recourant, pour ses frais d'avocat dans la procédure de recours de droit public (art. 159 al. 1 OJ).
Il s'ensuit que la demande d'assistance judiciaire est sans objet.

Par ces motifs, le Tribunal fédéral prononce:
Par ces motifs, le Tribunal fédéral prononce:
1. Le recours de droit public est admis et l'arrêt rendu le 29 août 2003 par le Tribunal d'accusation du Tribunal cantonal du canton de Vaud est annulé.
1. Le recours de droit public est admis et l'arrêt rendu le 29 août 2003 par le Tribunal d'accusation du Tribunal cantonal du canton de Vaud est annulé.
2. Il n'est pas perçu d'émolument judiciaire.
2. Il n'est pas perçu d'émolument judiciaire.
3. Une indemnité de 1'500 fr., à payer au recourant à titre de dépens, est mise à la charge de l'Etat de Vaud.
3. Une indemnité de 1'500 fr., à payer au recourant à titre de dépens, est mise à la charge de l'Etat de Vaud.
4. Le présent arrêt est communiqué en copie au mandataire du recourant, au Ministère public et au Tribunal d'accusation du Tribunal cantonal du canton de Vaud.
Lausanne, le 26 mai 2004
Au nom de la Ire Cour de droit public
du Tribunal fédéral suisse
Le président: Le greffier: