| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- #!/usr/bin/env python3
- """Test translation with glossary terms."""
- import sys
- # Add torch path first
- torch_path = '/root/.local/lib/python3.11/site-packages'
- if torch_path not in sys.path:
- sys.path.insert(0, torch_path)
- # Add src path
- sys.path.insert(0, '/mnt/code/223-236-template-6/src')
- from glossary.models import Glossary, GlossaryEntry, TermCategory
- from translator.pipeline import TranslationPipeline
- from translator.engine import TranslationEngine
- def main():
- # Initialize components
- model_path = '/mnt/code/223-236-template-6/phase0-test/models/m2m100_418M'
- engine = TranslationEngine(model_path=model_path)
- glossary = Glossary()
- # Add terms
- glossary.add(GlossaryEntry(source='林风', target='Lin Feng', category=TermCategory.CHARACTER))
- glossary.add(GlossaryEntry(source='青云宗', target='Qingyun Sect', category=TermCategory.ORGANIZATION))
- glossary.add(GlossaryEntry(source='外门弟子', target='outer disciple', category=TermCategory.OTHER))
- print('=' * 50)
- print('术语表已添加以下术语:')
- for entry in glossary.get_all():
- print(f' - {entry.source} -> {entry.target}')
- print('=' * 50)
- # Create pipeline
- pipeline = TranslationPipeline(
- engine=engine,
- glossary=glossary,
- src_lang='zh',
- tgt_lang='en'
- )
- # Test translation
- test_text = '林风是青云宗的一名外门弟子'
- print(f'\n输入: {test_text}')
- print('=' * 50)
- result = pipeline.translate(test_text, return_details=True)
- print(f'输出: {result.translated}')
- print(f'使用的术语: {result.terms_used if result.terms_used else []}')
- print('=' * 50)
- # Check for _en__ prefix issue
- if '_en__' in result.translated:
- print('\n❌ 问题: 发现 _en__ 前缀残留!')
- return 1
- else:
- print('\n✅ 通过: 没有 _en__ 前缀问题!')
- return 0
- if __name__ == '__main__':
- sys.exit(main() or 0)
|